BTC x M2 Divergence (Weekly)### Why the "M2 Money Supply vs BTC Divergence with Normalized RSI" Indicator Should Work
IMPORTANT
- Weekly only indicator
- Combine it with BTC Halving Cycle Profit for better results
The "M2 Money Supply vs BTC Divergence with Normalized RSI" indicator leverages the relationship between macroeconomic factors (M2 money supply) and Bitcoin price movements, combined with technical analysis tools like RSI, to provide actionable trading signals. Here's a detailed rationale on why this indicator should be effective:
1. **Macroeconomic Influence**:
- **M2 Money Supply**: Represents the total money supply, including cash, checking deposits, and easily convertible near money. Changes in M2 reflect liquidity in the economy, which can influence asset prices, including Bitcoin.
- **Bitcoin Sensitivity to Liquidity**: Bitcoin, being a digital asset, often reacts to changes in liquidity conditions. An increase in money supply can lead to higher asset prices as more money chases fewer assets, while a decrease can signal tightening conditions and lower prices.
2. **Divergence Analysis**:
- **Economic Divergence**: The indicator calculates the divergence between the percentage changes in M2 and Bitcoin prices. This divergence can highlight discrepancies between Bitcoin's price movements and broader economic conditions.
- **Market Inefficiencies**: Large divergences may indicate inefficiencies or imbalances that could lead to price corrections or trends. For example, if M2 is increasing (indicating more liquidity) but Bitcoin is not rising proportionately, it might suggest a potential upward correction in Bitcoin's price.
3. **Normalization and Smoothing**:
- **Normalized Divergence**: Normalizing the divergence to a consistent scale (-100 to 100) allows for easier comparison and interpretation over time, making the signals more robust.
- **Smoothing with EMA**: Applying Exponential Moving Averages (EMAs) to the normalized divergence helps to reduce noise and identify the underlying trend more clearly. This double-smoothed divergence provides a clearer signal by filtering out short-term volatility.
4. **RSI Integration**:
- **RSI as a Momentum Indicator**: RSI measures the speed and change of price movements, indicating overbought or oversold conditions. Normalizing the RSI and incorporating it into the divergence analysis helps to confirm the strength of the signals.
- **Combining Divergence with RSI**: By using RSI in conjunction with divergence, the indicator gains an additional layer of confirmation. For instance, a bullish divergence combined with an oversold RSI can be a strong buy signal.
5. **Dynamic Zones and Sensitivity**:
- **Good DCA Zones**: Highlighting zones where the divergence is significantly positive (good DCA zones) indicates periods where Bitcoin might be undervalued relative to economic conditions, suggesting good buying opportunities.
- **Red Zones**: Marking zones with extremely negative divergence, combined with RSI confirmation, identifies potential market tops or bearish conditions. This helps traders avoid buying into overbought markets or consider selling.
- **Peak Detection**: The sensitivity setting for detecting upside down peaks allows for early identification of potential market bottoms, providing timely entry points for traders.
6. **Visual Cues and Alerts**:
- **Clear Visualization**: The plots and background colors provide immediate visual feedback, making it easier for traders to spot significant conditions without deep analysis.
- **Alerts**: Built-in alerts for key conditions (good DCA zones, red zones, sell signals) ensure traders can act promptly based on the indicator's signals, enhancing the practicality of the tool.
### Conclusion
The "M2 Money Supply vs BTC Divergence with Normalized RSI" indicator integrates macroeconomic data with technical analysis to offer a comprehensive view of Bitcoin's market conditions. By analyzing the divergence between M2 money supply and Bitcoin prices, normalizing and smoothing the data, and incorporating RSI for momentum confirmation, the indicator provides robust signals for identifying potential buying and selling opportunities. This holistic approach increases the likelihood of capturing significant market movements and making informed trading decisions.
在脚本中搜索"蔚山现代vs川崎前锋"
Divergence Indicator [Trendoscope®]🎲 New Divergence Indicator by Trendoscope
Our latest Divergence Indicator revolutionizes the way traders identify market trends and potential reversals. Built upon the robust foundation of the Zigzag Trend Divergence Detector and inline with our recent implementation of the Divergence Goggles indicator, this tool is designed to be intuitive yet powerful, making it an essential addition to any trader's toolkit.
We received several queries on extending the Divergence Goggles to last N bars instead of using an interactive widget. Though it is possible, we thought the better approach is to enable the indicator to use any oscillator and trend indicator in order to define the divergence.
🎯 Key Features
Flexible Oscillator Integration : Choose from a wide range of built-in oscillators or import your own, including options like the innovative Multiband Oscillator. This versatility extends to using volume indicators like OBV for divergence calculations, broadening the scope of analysis.
Trend Identification Versatility : Utilize built-in methods like Zigzag and MA Difference, or integrate external trend indicators. Our system adapts to various methods, ensuring you have the right tools for precise trend identification.
Customizable Zigzag Sensitivity : Adjust the Zigzag based on your chosen oscillator's sensitivity to ensure divergence lines are accurate and visually coherent.
Repainting vs. Delayed Signals : Tailor the indicator to your strategy by choosing between immediate repainting signals and slightly delayed but more stable signals.
🎯 Understanding Divergence: Key Rules
Bullish Divergence
Happens only in downtrend
Observed on Pivot Lows
Price makes lower low whereas oscillator makes higher low, indicating weakness and possible reversal
Bearish Divergence
Happens only in uptrend
Observed on Pivot Highs
Price makes higher high whereas oscillator makes lower high, indicating weakness and possible reversal
Bullish Hidden Divergence
Happens only in uptrend
Observed on Pivot Lows
Price makes higher low, whereas indicator makes lower low due to price consolidation. In bullish trend, this is considered as bullish as the price gets a breather and get ready to surge further.
Bearish Hidden Divergence
Happens only in downtrend
Observed on Pivot Highs
Price makes lower high whereas oscillator makes higher high due to price consolidation. In bearish trend, this is considered as bearish as the price gets a breather and get ready to fall further.
🎯 Visual Insights: Divergence and Hidden Divergence
For a clearer understanding, refer to our visual guides:
🎲 Using the Divergence Indicator: A Step-by-Step Guide
🎯 Step 1 - Selecting the Oscillator
Customize your analysis by choosing from a variety of oscillators or importing your preferred one. Options are available to select a range of built-in oscillators and the loopback length. However, if the oscillator that user want to use is not in the list, they can simply load the oscillator from the indicator library and use it as an external signal.
In our current example, we are using a custom oscillator called - Multiband Oscillator
This also means, the indicator option is not limited to oscillators. Users can even make use of volume indicators such as OBV for the calculation of divergence.
🎯 Step 2 - Choosing the Trend Identification Method
Select from our built-in methods or integrate an external indicator to accurately identify market trends. Trend is one of the key parameters of divergence type identification. Trend can be identified mathematically by various methods. Some of them are as simple as above or below 200 moving average and some can follow trend based indicators such as supertrend and others can be very complex.
To cater for a wider audience, here too we have provided the option to use an external trend indicator. The simple condition for the external trend indicator is that it should return positive value for uptrend and negative value for downtrend.
Other than that, we also have 2 built in trend identification methods.
Zigzag - The trend is defined by the starting pivot of divergence line. If the starting pivot is Higher High or Higher Low, then it is considered uptrend. And if the starting pivot is either Lower Low or Lower High, then we consider it as downtrend.
MA Difference - In this case, the difference between the moving average of pivots joining the divergence line will determine the trend. It is considered uptrend if the moving average increased from starting pivot to ending pivot of the divergence line, and it is considered downtrend if the moving average decreased from starting pivot to the ending pivot of the divergence line.
🎯 Step 3 - Adjusting Zigzag Sensitivity
Fine-tune the Zigzag to match the oscillator's sensitivity, ensuring divergence lines are accurate and visually coherent.
🎯 Step 4 - Managing Repainting
Understand the implications of repainting in the last pivot of the Zigzag and choose between immediate or delayed signals based on your trading strategy. The last pivot of the zigzag repaint by design. This is not necessarily a bad thing. Users can just choose not to use the last pivot, but instead use the last but one for all the calculations. But, this also means, the signals will be delayed.
Indicator provides option to use repainting signal vs delayed signal. If you select the repaint option, the signals are shown immediately as and when they occur. But, there is a possibility that these signals change when the new price candles change zigzag pivot.
If you chose not to select the repaint option, then the divergence signals may lag by a few bars.
RVol LabelThis Code is update version of Code Provided by @ssbukam, Here is Link to his original Code and review the Description
Below is Original Description
1. When chart resolution is Daily or Intraday (D, 4H, 1H, 5min, etc), Relative Volume shows value based on DAILY. RVol is measured on daily basis to compare past N number of days.
2. When resolution is changed to Weekly or Monthly, then Relative Volume shows corresponding value. i.e. Weekly shows weekly relative volume of this week compared to past 'N' weeks. Likewise for Monthly. You would see change in label name. Like, Weekly chart shows W_RVol (Weekly Relative Volume). Likewise, Daily & Intraday shows D_RVol. Monthly shows M_RVol (Monthly Relative Volume).
3. Added a plot (by default hidden) for this specific reason: When you move the cursor to focus specific candle, then Indicator Value displays relative volume of that specific candle. This applies to Intraday as well. So if you're in 1HR chart and move the cursor to a specific candle, Indicator Value shows relative volume for that specific candlestick bar.
4. Updating the script so that text size and location can be customized.
Changes to Updated Label by me
1. Added Today's Volume to the Label
2. Added Total Average Volume to the Label
3. Comparison vs Both in Single Line and showing how much volume has traded vs the average volume for that time of the day
4. Aesthetic Look of the Label
How to Use Relative Volume for Trading
Using Relative Volume (RVol) in trading can be a valuable tool to help you identify potential trading opportunities and gain insight into market behavior. Here are some ways to use RVol in your trading strategy:
Identifying High-Volume Breakouts: RVol can help you spot potential breakouts when the volume surges significantly above its average. High RVol during a breakout suggests strong market interest, increasing the probability of a sustained move in the direction of the breakout.
Confirming Trends and Reversals: RVol can act as a confirmation tool for trends and reversals. A trend accompanied by rising RVol indicates a strong and sustainable move. Conversely, a trend with declining RVol might suggest a weakening trend or potential reversal.
Spotting Volume Divergence: When the price is moving in one direction, but RVol is declining or not confirming the move, it may indicate a divergence. This discrepancy could suggest a potential reversal or trend change.
Support and Resistance Confirmation: High RVol near key support or resistance levels can indicate potential price reactions at those levels. This confirmation can be valuable in determining whether a level is likely to hold or break.
Filtering Trade Signals: Incorporate RVol into your existing trading strategy as a filter. For example, you might consider taking trades only if RVol is above a certain threshold, ensuring that you focus on high-impact trading opportunities.
Avoiding Low-Volume Traps: Low RVol can indicate a lack of interest or participation in the market. In such situations, price movements may be erratic and less reliable, so it's often wise to avoid trading during low RVol periods.
Monitoring News Events: Around significant news events or earnings releases, RVol can help you gauge the market's reaction to the information. High RVol during such events can present trading opportunities but be cautious of increased volatility and potential gaps.
Adjusting Trade Size: During periods of extremely high RVol, it might be prudent to adjust your position size to account for higher risk.
Using Relative Volume in Morning Session
If the Volume traded in first 15 minute to 30 Minutes is already at 50% or 100% depending upon the ticker, it means that it is going to have very high Volume vs average by end of the day.
This gives me conviction for Long or Short Trades
Remember that RVol is not a standalone indicator; it works best when used in conjunction with other technical and fundamental analysis tools. Additionally, RVol's effectiveness may vary across different markets and trading strategies. Therefore, backtesting and validating the use of RVol in your trading approach is essential.
Lastly, risk management is crucial in trading. While RVol can provide valuable insights, it cannot guarantee profitable trades. Always use appropriate risk management strategies, such as setting stop-loss levels, and avoid overexposing yourself to the market based solely on RVol readings.
Market Structure & Liquidity: CHoCHs+Nested Pivots+FVGs+Sweeps//Purpose:
This indicator combines several tools to help traders track and interpret price action/market structure; It can be divided into 4 parts;
1. CHoCHs, 2. Nested Pivot highs & lows, 3. Grade sweeps, 4. FVGs.
This gives the trader a toolkit for determining market structure and shifts in market structure to help determine a bull or bear bias, whether it be short-term, med-term or long-term.
This indicator also helps traders in determining liquidity targets: wether they be voids/gaps (FVGS) or old highs/lows+ typical sweep distances.
Finally, the incorporation of HTF CHoCH levels printing on your LTF chart helps keep the bigger picture in mind and tells traders at a glance if they're above of below Custom HTF CHoCH up or CHoCH down (these HTF CHoCHs can be anything from Hourly up to Monthly).
//Nomenclature:
CHoCH = Change of Character
STH/STL = short-term high or low
MTH/MTL = medium-term high or low
LTH/LTL = long-term high or low
FVG = Fair value gap
CE = consequent encroachement (the midline of a FVG)
~~~ The Four components of this indicator ~~~
1. CHoCHs:
•Best demonstrated in the below charts. This was a method taught to me by @Icecold_crypto. Once a 3 bar fractal pivot gets broken, we count backwards the consecutive higher lows or lower highs, then identify the CHoCH as the opposite end of the candle which ended the consecutive backwards count. This CHoCH (UP or DOWN) then becomes a level to watch, if price passes through it in earnest a trader would consider shifting their bias as market structure is deemed to have shifted.
•HTF CHoCHs: Option to print Higher time frame chochs (default on) of user input HTF. This prints only the last UP choch and only the last DOWN choch from the input HTF. Solid line by default so as to distinguish from local/chart-time CHoCHs. Can be any Higher timeframe you like.
•Show on table: toggle on show table(above/below) option to show in table cells (top right): is price above the latest HTF UP choch, or is price below HTF DOWN choch (or is it sat between the two, in a state of 'uncertainty').
•Most recent CHoCHs which have not been met by price will extend 10 bars into the future.
• USER INPUTS: overall setting: SHOW CHOCHS | Set bars lookback number to limit historical Chochs. Set Live CHoCHs number to control the number of active recent chochs unmet by price. Toggle shrink chochs once hit to declutter chart and minimize old chochs to their origin bars. Set Multi-timeframe color override : to make Color choices auto-set to your preference color for each of 1m, 5m, 15m, H, 4H, D, W, M (where up and down are same color, but 'up' icon for up chochs and down icon for down chochs remain printing as normal)
2. Nested Pivot Highs & Lows; aka 'Pivot Highs & Lows (ST/MT/LT)'
•Based on a seperate, longer lookback/lookforward pivot calculation. Identifies Pivot highs and lows with a 'spikeyness' filter (filtering out weak/rounded/unimpressive Pivot highs/lows)
•by 'nested' I mean that the pivot highs are graded based on whether a pivot high sits between two lower pivot highs or vice versa.
--for example: STH = normal pivot. MTH is pivot high with a lower STH on either side. LTH is a pivot high with a lower MTH on either side. Same applies to pivot lows (STL/MTL/LTL)
•This is a useful way to measure the significance of a high or low. Both in terms of how much it might be typically swept by (see later) and what it would imply for HTF bias were we to break through it in earnest (more than just a sweep).
• USER INPUTS: overall setting: show pivot highs & lows | Bars lookback (historical pivots to show) | Pivots: lookback/lookforward length (determines the scale of your pivot highs/lows) | toggle on/off Apply 'Spikeyness' filter (filters out smooth/unimpressive pivot highs/lows). Set Spikeyness index (determines the strength of this filter if turned on) | Individually toggle on each of STH, MTH, LTH, STL, MTL, LTL along with their label text type , and size . Toggle on/off line for each of these Pivot highs/lows. | Set label spacer (atr multiples above / below) | set line style and line width
3. Grade Sweeps:
•These are directly related to the nested pivots described above. Most assets will have a typical sweep distance. I've added some of my expected sweeps for various assets in the indicator tooltips.
--i.e. Eur/Usd 10-20-30 pips is a typical 'grade' sweep. S&P HKEX:5 - HKEX:10 is a typical grade sweep.
•Each of the ST/MT/LT pivot highs and lows have optional user defined grade sweep boxes which paint above until filled (or user option for historical filled boxes to remain).
•Numbers entered into sweep input boxes are auto converted into appropriate units (i.e. pips for FX, $ or 'handles' for indices, $ for Crypto. Very low $ units can be input for low unit value crypto altcoins.
• USER INPUTS: overall setting: Show sweep boxes | individually select colors of each of STH, MTH, LTH, STL, MTL, LTL sweep boxes. | Set Grade sweep ($/pips) number for each of ST, MT, LT. This auto converts between pips and $ (i.e. FX vs Indices/Crypto). Can be a float as small or large as you like ($0.000001 to HKEX:1000 ). | Set box text position (horizontal & vertical) and size , and color . | Set Box width (bars) (for non extended/ non-auto-terminating at price boxes). | toggle on/off Extend boxes/lines right . | Toggle on/off Shrink Grade sweeps on fill (they will disappear in realtime when filled/passed through)
4. FVGs:
•Fair Value gaps. Represent 'naked' candle bodies where the wicks to either side do not meet, forming a 'gap' of sorts which has a tendency to fill, or at least to fill to midline (CE).
•These are ICT concepts. 'UP' FVGS are known as BISIs (Buyside imbalance, sellside inefficiency); 'DOWN' FVGs are known as SIBIs (Sellside imbalance, buyside inefficiency).
• USER INPUTS: overall setting: show FVGs | Bars lookback (history). | Choose to display: 'UP' FVGs (BISI) and/or 'DOWN FVGs (SIBI) . Choose to display the midline: CE , the color and the line style . Choose threshold: use CE (as opposed to Full Fill) |toggle on/off Shrink FVG on fill (CE hit or Full fill) (declutter chart/see backtesting history)
////••Alerts (general notes & cautionary notes)::
•Alerts are optional for most of the levels printed by this indicator. Set them via the three dots on indicator status line.
•Due to dynamic repainting of levels, alerts should be used with caution. Best use these alerts either for Higher time frame levels, or when closely monitoring price.
--E.g. You may set an alert for down-fill of the latest FVG below; but price will keep marching up; form a newer/higher FVG, and the alert will trigger on THAT FVG being down-filled (not the original)
•Available Alerts:
-FVG(BISI) cross above threshold(CE or full-fill; user choice). Same with FVG(SIBI).
-HTF last CHoCH down, cross below | HTF last CHoCH up, cross above.
-last CHoCH down, cross below | last CHoCH up, cross above.
-LTH cross above, MTH cross above, STH cross above | LTL cross below, MTL cross below, STL cross below.
////••Formatting (general)::
•all table text color is set from the 'Pivot highs & Lows (ST, MT, LT)' section (for those of you who prefer black backgrounds).
•User choice of Line-style, line color, line width. Same with Boxes. Icon choice for chochs. Char or label text choices for ST/MT/LT pivot highs & lows.
////••User Inputs (general):
•Each of the 4 components of this indicator can be easily toggled on/off independently.
•Quite a lot of options and toggle boxes, as described in full above. Please take your time and read through all the tooltips (hover over '!' icon) to get an idea of formatting options.
•Several Lookback periods defined in bars to control how much history is shown for each of the 4 components of this indicator.
•'Shrink on fill' settings on FVGs and CHoCHs: Basically a way to declutter chart; toggle on/off depending on if you're backtesting or reading live price action.
•Table Display: applies to ST/MT/LT pivot highs and to HTF CHoCHs; Toggle table on or off (in part or in full)
////••Credits:
•Credit to ICT (Inner Circle Trader) for some of the concepts used in this indicator (FVGS & CEs; Grade sweeps).
•Credit to @Icecold_crypto for the specific and novel concept of identifying CHoCHs in a simple, objective and effective manner (as demonstrated in the 1st chart below).
CHoCH demo page 1: shifting tweak; arrow diagrams to demonstrate how CHoCHs are defined:
CHoCH demo page 2: Simplified view; short lookback history; few CHoCHs, demo of 'latest' choch being extended into the future by 10 bars:
USAGE: Bitcoin Hourly using HTF daily CHoCHs:
USAGE-2: Cotton Futures (CT1!) 2hr. Painting a rather bullish picture. Above HTF UP CHoCH, Local CHoCHs show bullish order flow, Nice targets above (MTH/LTH + grade sweeps):
Full Demo; 5min chart; CHoCHs, Short term pivot highs/lows, grade sweeps, FVGs:
Full Demo, Eur/Usd 15m: STH, MTH, LTH grade sweeps, CHoCHs, Usage for finding bias (part A):
Full Demo, Eur/Usd 15m: STH, MTH, LTH grade sweeps, CHoCHs, Usage for finding bias, 3hrs later (part B):
Realtime Vs Backtesting(A): btc/usd 15m; FVGs and CHoCHs: shrink on fill, once filled they repaint discreetly on their origin bar only. Realtime (Shrink on fill, declutter chart):
Realtime Vs Backtesting(B): btc/usd 15m; FVGs and CHoCHs: DON'T shrink on fill; they extend to the point where price crosses them, and fix/paint there. Backtesting (seeing historical behaviour):
Support Bands indicatorSupport Band to follow Trends.
We can see clear where price is Trading. Observe how moving averages are developing or aligning to change trend or continuation.
Green up trend vs Red Down Trend
Band 1
8EMA Green Line vs 10SMA Light blue Line
Band 2
21EMA Orange Line vs 30 SMA Brown Line
Also includes
1 SMA Gray line for closing when you're looking at weakly charts.
40 SMA darker Gray
50 SMA Blue
100 SMA White
150 SMA Pink
200 SMA Yellow
300 SMA Dark Red
I hope it helps you to see when price is trending up and a set correctly your stop.
CVD - Cumulative Volume Delta Candles█ OVERVIEW
This indicator displays cumulative volume delta in candle form. It uses intrabar information to obtain more precise volume delta information than methods using only the chart's timeframe.
█ CONCEPTS
Bar polarity
By bar polarity , we mean the direction of a bar, which is determined by looking at the bar's close vs its open .
Intrabars
Intrabars are chart bars at a lower timeframe than the chart's. Each 1H chart bar of a 24x7 market will, for example, usually contain 60 bars at the lower timeframe of 1min, provided there was market activity during each minute of the hour. Mining information from intrabars can be useful in that it offers traders visibility on the activity inside a chart bar.
Lower timeframes (LTFs)
A lower timeframe is a timeframe that is smaller than the chart's timeframe. This script uses a LTF to access intrabars. The lower the LTF, the more intrabars are analyzed, but the less chart bars can display CVD information because there is a limit to the total number of intrabars that can be analyzed.
Volume delta
The volume delta concept divides a bar's volume in "up" and "down" volumes. The delta is calculated by subtracting down volume from up volume. Many calculation techniques exist to isolate up and down volume within a bar. The simplest techniques use the polarity of interbar price changes to assign their volume to up or down slots, e.g., On Balance Volume or the Klinger Oscillator . Others such as Chaikin Money Flow use assumptions based on a bar's OHLC values. The most precise calculation method uses tick data and assigns the volume of each tick to the up or down slot depending on whether the transaction occurs at the bid or ask price. While this technique is ideal, it requires huge amounts of data on historical bars, which usually limits the historical depth of charts and the number of symbols for which tick data is available.
This indicator uses intrabar analysis to achieve a compromise between the simplest and most precise methods of calculating volume delta. In the context where historical tick data is not yet available on TradingView, intrabar analysis is the most precise technique to calculate volume delta on historical bars on our charts. Our Volume Profile indicators use it. Other volume delta indicators in our Community Scripts such as the Realtime 5D Profile use realtime chart updates to achieve more precise volume delta calculations, but that method cannot be used on historical bars, so those indicators only work in real time.
This is the logic we use to assign intrabar volume to up or down slots:
• If the intrabar's open and close values are different, their relative position is used.
• If the intrabar's open and close values are the same, the difference between the intrabar's close and the previous intrabar's close is used.
• As a last resort, when there is no movement during an intrabar and it closes at the same price as the previous intrabar, the last known polarity is used.
Once all intrabars making up a chart bar have been analyzed and the up or down property of each intrabar's volume determined, the up volumes are added and the down volumes subtracted. The resulting value is volume delta for that chart bar.
█ FEATURES
CVD Candles
Cumulative Volume Delta Candles present volume delta information as it evolves during a period of time.
This is how each candle's levels are calculated:
• open : Each candle's' open level is the cumulative volume delta for the current period at the start of the bar.
This value becomes zero on the first candle following a CVD reset.
The candles after the first one always open where the previous candle closed.
The candle's high, low and close levels are then calculated by adding or subtracting a volume value to the open.
• high : The highest volume delta value found in intrabars. If it is not higher than the volume delta for the bar, then that candle will have no upper wick.
• low : The lowest volume delta value found in intrabars. If it is not lower than the volume delta for the bar, then that candle will have no lower wick.
• close : The aggregated volume delta for all intrabars. If volume delta is positive for the chart bar, then the candle's close will be higher than its open, and vice versa.
The candles are plotted in one of two configurable colors, depending on the polarity of volume delta for the bar.
CVD resets
The "cumulative" part of the indicator's name stems from the fact that calculations accumulate during a period of time. This allows you to analyze the progression of volume delta across manageable chunks, which is often more useful than looking at volume delta cumulated from the beginning of a chart's history.
You can configure the reset period using the "CVD Resets" input, which offers the following selections:
• None : Calculations do not reset.
• On a fixed higher timeframe : Calculations reset on the higher timeframe you select in the "Fixed higher timeframe" field.
• At a fixed time that you specify.
• At the beginning of the regular session .
• On a stepped higher timeframe : Calculations reset on a higher timeframe automatically stepped using the chart's timeframe and following these rules:
Chart TF HTF
< 1min 1H
< 3H 1D
<= 12H 1W
< 1W 1M
>= 1W 1Y
The indicator's background shows where resets occur.
Intrabar precision
The precision of calculations increases with the number of intrabars analyzed for each chart bar. It is controlled through the script's "Intrabar precision" input, which offers the following selections:
• Least precise, covering many chart bars
• Less precise, covering some chart bars
• More precise, covering less chart bars
• Most precise, 1min intrabars
As there is a limit to the number of intrabars that can be analyzed by a script, a tradeoff occurs between the number of intrabars analyzed per chart bar and the chart bars for which calculations are possible.
Total volume candles
You can choose to display candles showing the total intrabar volume for the chart bar. This provides you with more context to evaluate a bar's volume delta by showing it relative to the sum of intrabar volume. Note that because of the reasons explained in the "NOTES" section further down, the total volume is the sum of all intrabar volume rather than the volume of the bar at the chart's timeframe.
Total volume candles can be configured with their own up and down colors. You can also control the opacity of their bodies to make them more or less prominent. This publication's chart shows the indicator with total volume candles. They are turned off by default, so you will need to choose to display them in the script's inputs for them to plot.
Divergences
Divergences occur when the polarity of volume delta does not match that of the chart bar. You can identify divergences by coloring the CVD candles differently for them, or by coloring the indicator's background.
Information box
An information box in the lower-left corner of the indicator displays the HTF used for resets, the LTF used for intrabars, and the average quantity of intrabars per chart bar. You can hide the box using the script's inputs.
█ INTERPRETATION
The first thing to look at when analyzing CVD candles is the side of the zero line they are on, as this tells you if CVD is generally bullish or bearish. Next, one should consider the relative position of successive candles, just as you would with a price chart. Are successive candles trending up, down, or stagnating? Keep in mind that whatever trend you identify must be considered in the context of where it appears with regards to the zero line; an uptrend in a negative CVD (below the zero line) may not be as powerful as one taking place in positive CVD values, but it may also predate a movement into positive CVD territory. The same goes with stagnation; a trader in a long position will find stagnation in positive CVD territory less worrisome than stagnation under the zero line.
After consideration of the bigger picture, one can drill down into the details. Exactly what you are looking for in markets will, of course, depend on your trading methodology, but you may find it useful to:
• Evaluate volume delta for the bar in relation to price movement for that bar.
• Evaluate the proportion that volume delta represents of total volume.
• Notice divergences and if the chart's candle shape confirms a hesitation point, as a Doji would.
• Evaluate if the progress of CVD candles correlates with that of chart bars.
• Analyze the wicks. As with price candles, long wicks tend to indicate weakness.
Always keep in mind that unless you have chosen not to reset it, your CVD resets for each period, whether it is fixed or automatically stepped. Consequently, any trend from the preceding period must re-establish itself in the next.
█ NOTES
Know your volume
Traders using volume information should understand the volume data they are using: where it originates and what transactions it includes, as this can vary with instruments, sectors, exchanges, timeframes, and between historical and realtime bars. The information used to build a chart's bars and display volume comes from data providers (exchanges, brokers, etc.) who often maintain distinct feeds for intraday and end-of-day (EOD) timeframes. How volume data is assembled for the two feeds depends on how instruments are traded in that sector and/or the volume reporting policy for each feed. Instruments from crypto and forex markets, for example, will often display similar volume on both feeds. Stocks will often display variations because block trades or other types of trades may not be included in their intraday volume data. Futures will also typically display variations.
Note that as intraday vs EOD variations exist for historical bars on some instruments, differences may also exist between the realtime feeds used on intraday vs 1D or greater timeframes for those same assets. Realtime reporting rules will often be different from historical feed reporting rules, so variations between realtime feeds will often be different from the variations between historical feeds for the same instrument. The Volume X-ray indicator can help you analyze differences between intraday and EOD volumes for the instruments you trade.
If every unit of volume is both bought by a buyer and sold by a seller, how can volume delta make sense?
Traders who do not understand the mechanics of matching engines (the exchange software that matches orders from buyers and sellers) sometimes argue that the concept of volume delta is flawed, as every unit of volume is both bought and sold. While they are rigorously correct in stating that every unit of volume is both bought and sold, they overlook the fact that information can be mined by analyzing variations in the price of successive ticks, or in our case, intrabars.
Our calculations model the situation where, in fully automated order handling, market orders are generally matched to limit orders sitting in the order book. Buy market orders are matched to quotes at the ask level and sell market orders are matched to quotes at the bid level. As explained earlier, we use the same logic when comparing intrabar prices. While using intrabar analysis does not produce results as precise as when individual transactions — or ticks — are analyzed, results are much more precise than those of methods using only chart prices.
Not only does the concept underlying volume delta make sense, it provides a window on an oft-overlooked variable which, with price and time, is the only basic information representing market activity. Furthermore, because the calculation of volume delta also uses price and time variations, one could conceivably surmise that it can provide a more complete model than ones using price and time only. Whether or not volume delta can be useful in your trading practice, as usual, is for you to decide, as each trader's methodology is different.
For Pine Script™ coders
As our latest Polarity Divergences publication, this script uses the recently released request.security_lower_tf() Pine Script™ function discussed in this blog post . It works differently from the usual request.security() in that it can only be used at LTFs, and it returns an array containing one value per intrabar. This makes it much easier for programmers to access intrabar information.
Look first. Then leap.
Numbers RenkoRenko with Volume and Time in the box was developed by David Weis (Authority on Wyckoff method) and his student.
I like this style (I don't know what it is officially called) because it brings out the potential of Wyckoff method and Renko, and looks beautiful.
I can't find this style Indicator anywhere, so I made something like it, then I named "Numbers Renko" (数字 練行足 in Japanese).
Caution : This indicator only works exactly in Renko Chart.
////////// Numbers Renko General Settings //////////
Volume Divisor : To make good looking Volume Number.
ex) You set 100. When Volume is 0.056, 0.05 x 100 = 5.6. 6 is plotted in the box (Decimal are round off).
Show Only Large Renko Volume : show only Renko Volume which is larger than Average Renko Volume (it is calculated by user selected moving average, option below).
Show Renko Time : "Only Large Renko Time" show only Renko Time which is larger than Average Renko Time (it is calculated by user selected moving average, option below).
EMA period for calculation : This is used to calculate Average Renko Time and Average Renko Volume (These are used to decide Numbers colors and Candles colors). Default is EMA, You can choice SMA.
////////// Numbers Renko Coloring //////////
The Numbers in the box are color coded by compared the current Renko Volume with the Average Renko Volume.
If the current Renko Volume is 2 times larger than the ARV, Color2 will be used. If the current Renko Volume is 1.5 times larger than the ARV, Color1.5 will be used. Color1 If the current Renko Volume is larger than the ARV . Color0.5 is larger than half Athe RV and Color0 is less than or equal to half the ARV. Color1, Color1.5 and Color2 are Large Value, so only these colored Numbers are showed when use "Show Only ~ " option.
Default is Renko Volume based Color coding, You can choice Renko Time based Color coding. Therefore you can use two type coloring at the same time. ex) The Numbers Colors are Renko Volume based. Candle body, border and wick Colors are Renko Time based.
////////// Weis Wave Volume //////////
Show Effort vs Result : Weis Wave Volume divided by Wave Length.
ex) If 100 Up WWV is accumulated between 30 Up Renko Box, 100 / 30 = 3.33... will be 3.3 (Second decimal will be rounded off).
No Result Ratio : If current "Effort vs Result" is "No Result Ratio" times larger than Average Effort vs Result, Square Mark will be show. AEvsR is calculated by 5SMA.
ex) You set 1.5. If Current EvsR is 20 and AEvsR is 10, 20 > 10 x 1.5 then Square Mark will be show.
If the left and right arrows are in the same direction, the right arrow is omitted.
Show Comparison Marks : Show left side arrow by compare current value to previous previous value and show right side small arrow by compare current value to previous value.
ex) Current Up WWV is 17 and Previous Up WWV (previous previous value) is 12, left side arrow is Up. Previous Dn WWV is 20, right side small arrow is Dn.
Large Volume Ratio : If current WWV is "Large Volume Ratio" times larger than Average WWV, Large WWV color is used.
Sample layout
DailyDeviationLibrary "DailyDeviation"
Helps in determining the relative deviation from the open of the day compared to the high or low values.
hlcDeltaArrays(daysPrior, maxDeviation, spec, res) Retuns a set of arrays representing the daily deviation of price for a given number of days.
Parameters:
daysPrior : Number of days back to get the close from.
maxDeviation : Maximum deviation before a value is considered an outlier. A value of 0 will not filter results.
spec : session.regular (default), session.extended or other time spec.
res : The resolution (default = '1440').
Returns: Where OH = Open vs High, OL = Open vs Low, and OC = Open vs Close
fromOpen(daysPrior, maxDeviation, comparison, spec, res) Retuns a value representing the deviation from the open (to the high or low) of the current day given number of days to measure from.
Parameters:
daysPrior : Number of days back to get the close from.
maxDeviation : Maximum deviation before a value is considered an outlier. A value of 0 will not filter results.
comparison : The value use in comparison to the current open for the day.
spec : session.regular (default), session.extended or other time spec.
res : The resolution (default = '1440').
Modified ATR Indicator [KL]Modified Average True Range (ATR) Indicator
This indicator displays the ATR with relative highs and relative lows statistically determined.
What is ATR:
To know what ATR is, we need to understand what a True Range (TR) is.
- TR at a given bar is the highest distance between points: a) High vs low, b) High vs Close, and c) Low vs Close.
- ATR is the moving average of TRs over a predefined lookback period; 14 is the most commonly used.
- ATR can be mathematically expressed as:
Why is ATR Important
ATR often used to measure volatility; high volatility is indicated by high ATR, vice versa for low. This is a versatile tool allowing traders to determine entry/exit points, as well as the size of stop losses and when to take profits relative to it.
This is an opinion: Through observations, I have noticed that ATR can also indirectly tell us the levels of relative volume. This intuitively makes sense because in order to increase length of TR, high amounts of capital inflow/outflow is required (graphically speaking, high volume is required in order to make lengths of candle sticks longer). The relationship between ATR and relative volume should hold unless the market is illiquid to the extreme that there is no relationship between volume and price.
That said, knowing the relative lows/highs of ATR is very useful. It can be interpreted as:
- Relative high = high volatility, usually during sell offs
- Relative low = decreasing volume, could indicate price consolidation
Instead of arbitrarily determining whether ATR is high/low, this indicator will determine relative highs and relative lows using a simple statistical model.
How relative high/low is determined by this model
This indicator applies two-tailed hypothesis testing to test whether ATR (ie. say lookback of 14) has greatly deviated from a larger sample size (ie. lookback of 50). Assuming ATR is normally distributed and variance is known, then test statistic (z) can be used to determine whether ATR14 is within the critical area under Null Hypothesis: ATR14 == ATR50. If z falls below/above the left/right critical values (ie. 1.645 for a 90% confidence interval), then this is shown by the indicator through using different colors to plot the ATR line.
Volume X-ray [LucF]█ OVERVIEW
This tool analyzes the relative size of volume reported on intraday vs EOD (end of day) data feeds on historical bars. If you use volume data to make trading decisions, it can help you improve your understanding of its nature and quality, which is especially important if you trade on intraday timeframes.
I often mention, when discussing volume analysis, how it's important for traders to understand the volume data they are using: where it originates, what it includes and does not include. By helping you spot sizeable differences between volume reported on intraday and EOD data feeds for any given instrument, "Volume X-ray" can point you to instruments where you might want to research the causes of the difference.
█ CONCEPTS
The information used to build a chart's historical bars originates from data providers (exchanges, brokers, etc.) who often maintain distinct historical feeds for intraday and EOD timeframes. How volume data is assembled for intraday and EOD feeds varies with instruments, brokers and exchanges. Variations between the two feeds — or their absence — can be due to how instruments are traded in a particular sector and/or the volume reporting policy for the feeds you are using. Instruments from crypto and forex markets, for example, will often display similar volume on both feeds. Stocks will often display variations because block trades or other types of trades may not be included in their intraday volume data. Futures will also typically display variations. It is even possible that volume from different feeds may not be of the same nature, as you can get trade volume (market volume) on one feed and tick volume (transaction counts) on another. You will sometimes be able to find the details of what different feeds contain from the technical information provided by exchanges/brokers on their feeds. This is an example for the NASDAQ feeds . Once you determine which feeds you are using, you can look for the reporting specs for that feed. This is all research you will need to do on your own; "Volume X-ray" will not help you with that part.
You may elect to forego the deep dive in feed information and simply rely on the figure the indicator will calculate for the instruments you trade. One simple — and unproven — way to interpret "Volume X-ray" values is to infer that instruments with larger percentages of intraday/EOD volume ratios are more "democratic" because at intraday timeframes, you are seeing a greater proportion of the actual traded volume for the instrument. This could conceivably lead one to conclude that such volume data is more reliable than on an instrument where intraday volume accounts for only 3% of EOD volume, let's say.
Note that as intraday vs EOD variations exist for historical bars on some instruments, there will typically also be differences between the realtime feeds used on intraday vs 1D or greater timeframes for those same assets. Realtime reporting rules will often be different from historical feed reporting rules, so variations between realtime feeds will often be different from the variations between historical feeds for the same instrument. A deep dive in reporting rules will quickly reveal what a jungle they are for some instruments, yet it is the only way to really understand the volume information our charts display.
█ HOW TO USE IT
The script is very simple and has no inputs. Just add it to 1D charts and it will calculate the proportion of volume reported on the intraday feed over the EOD volume. The plots show the daily values for both volumes: the teal area is the EOD volume, the orange line is the intraday volume. A value representing the average, cumulative intraday/EOD volume percentage for the chart is displayed in the upper-right corner. Its background color changes with the percentage, with brightness levels proportional to the percentage for both the bull color (% >= 50) or the bear color (% < 50). When abnormal conditions are detected, such as missing volume of one kind or the other, a yellow background is used.
Daily and cumulative values are displayed in indicator values and the Data Window.
The indicator loads in a pane, but you can also use it in overlay mode by moving it on the chart with "Move to" in the script's "More" menu, and disabling the plot display from the "Settings/Style" tab.
█ LIMITATIONS
• The script will not run on timeframes >1D because it cannot produce useful values on them.
• The calculation of the cumulative average will vary on different intraday timeframes because of the varying number of days covered by the dataset.
Variations can also occur because of irregularities in reported volume data. That is the reason I recommend using it on 1D charts.
• The script only calculates on historical bars because in real time there is no distinction between intraday and EOD feeds.
• You will see plenty of special cases if you use the indicator on a variety of instruments:
• Some instruments have no intraday volume, while on others it's the opposite.
• Missing information will sometimes appear here and there on datasets.
• Some instruments have higher intraday than EOD volume.
Please do not ask me the reasons for these anomalies; it's your responsibility to find them. I supply a tool that will spot the anomalies for you — nothing more.
█ FOR PINE CODERS
• This script uses a little-known feature of request.security() , which allows us to specify `"1440"` for the `timeframe` argument.
When you do, data from the 1min intrabars of the historical intraday feed is aggregated over one day, as opposed to the usual EOD feed used with `"D"`.
• I use gaps on my request.security() calls. This is useful because at intraday timeframes I can cumulate non- na values only.
• I use fixnan() on some values. For those who don't know about it yet, it eliminates na values from a series, just like not using gaps will do in a request.security() call.
• I like how the new switch structure makes for more readable code than equivalent if structures.
• I wrote my script using the revised recommendations in the Style Guide from the Pine v5 User Manual.
• I use the new runtime.error() to throw an error when the script user tries to use a timeframe >1D.
Why? Because then, my request.security() calls would be returning values from the last 1D intrabar of the dilation of the, let's say, 1W chart bar.
This of course would be of no use whatsoever — and misleading. I encourage all Pine coders fetching HTF data to protect their script users in the same way.
As tool builders, it is our responsibility to shield unsuspecting users of our scripts from contexts where our calcs produce invalid results.
• While we're on the subject of accessing intrabar timeframes, I will add this to the intention of coders falling victim to what appears to be
a new misconception where the mere fact of using intrabar timeframes with request.security() is believed to provide some sort of edge.
This is a fallacy unless you are sending down functions specifically designed to mine values from request.security() 's intrabar context.
These coders do not seem to realize that:
• They are only retrieving information from the last intrabar of the chart bar.
• The already flawed behavior of their scripts on historical bars will not improve on realtime bars. It will actually worsen because in real time,
intrabars are not yet ordered sequentially as they are on historical bars.
• Alerts or strategy orders using intrabar information acquired through request.security() will be using flawed logic and data most of the time.
The situation reminds me of the mania where using Heikin-Ashi charts to backtest was all the rage because it produced magnificent — and flawed — results.
Trading is difficult enough when doing the right things; I hate to see traders infected by lethal beliefs.
Strive to sharpen your "herd immunity", as Lionel Shriver calls it. She also writes: "Be leery of orthodoxy. Hold back from shared cultural enthusiasms."
Be your own trader.
█ THANKS
This indicator would not exist without the invaluable insights from Tim, a member of the Pine team. Thanks Tim!
Relative StrengthThis indicator is called Relative Strength and is no way related to RSI ( Relative strength indicator).
It is simply a ratio of asset A to asset B plotted. Usually it is used to look for strength vs a particular index. Since it is a ratio, all the trendlines work on it. The default index is NIFTY. You can change it any index/script you want to compare:
1. Script vs Index
2. Index vs Index
Market BuySell RatioA script using 1m small candle size (configurable) to compute the volume of buy (up) vs sell (down) candles (instead of actual market buy vs sell orders which are not available in pine script).
It then plots the buy vs sell ratio as an oscillator below the cart.
This gives traders an idea of current order flow in the market.
To compute the small candles this script uses the "Smart Volume" script which can be found here:
Smart Money Concepts - Absorption Smart Money Concepts - Absorption (SMC-ABS)
Absorption event detector using split-volume VWMA ribbons, entropy filtering, and elasticity validation
Overview
This indicator highlights potential absorption/defense events: moments where price touches a volume-weighted band and then rejects, while additional filters confirm that market conditions are not random/noisy.
What it plots
• Energy ribbons (bands): two split-volume VWMA ribbon sets - Buy-weighted (cyan) and Sell-weighted (magma).
• ABS markers: printed when touch + rejection + validation conditions are met (see Logic section).
• Dashboard (HUD): real-time metrics such as price/volume z-scores, delta, entropy state, and resonance momentum states.
Core logic
1) Volume engine
The script builds Buy Volume and Sell Volume series using one of two modes:
• Geometry (candle-range split): estimates buy/sell participation from the close position within the candle range.
• Intrabar (precise): uses lower-timeframe up/down volume to derive buy/sell flows when data is available.
2) Split-VWMA resonance score
For multiple periods (5, 10, 20, 30, 40, 50), the script computes:
• A standard SMA of price.
• A Buy-weighted VWMA of price (weighted by Buy Volume).
• A Sell-weighted VWMA of price (weighted by Sell Volume).
Resonance is derived from the normalized divergence between the SMA and the split VWMAs, aggregated across the available periods.
3) Validation filters
Signals can be filtered by the following components (each toggleable):
• Volume-weighted entropy: a fractal-efficiency style disorder metric (TR-sum vs range) adjusted by relative volume; high entropy blocks signals.
• Momentum alignment (resonance velocity) : direction filter requiring positive velocity for buy events and negative velocity for sell events.
• Elasticity (recoil vs penetration): rejection quality check based on the bounce-back strength relative to the penetration depth into the fast band.
Absorption event conditions (ABS markers)
ABS markers are generated using the fastest ribbon band (length 5) for the touch/rejection logic:
• Buy absorption: low touches/penetrates the Buy band and the candle closes back above it, with filters passing.
• Sell absorption: high touches/penetrates the Sell band and the candle closes back below it, with filters passing.
Note: acceleration/deceleration is displayed in the HUD as a state; the primary directional filter is the resonance velocity.
Settings
• Volume Model: choose Geometry or Intrabar.
• Intrabar LTF: lower timeframe used by the Intrabar model (only applies when Intrabar is selected).
• Global Lookback: lookback window used for z-score statistics and related calculations.
• Quantum Filters: toggles and thresholds for entropy, momentum alignment, and elasticity validation.
• Dashboard Settings :/ Energy Ribbons / Absorption Events: controls for visuals and filtering behavior.
Usage notes and limitations
• Signals are most reliable after candle close. On the forming candle, conditions can change until the bar closes.
• Results depend on the availability and quality of volume data for the selected symbol and exchange.
• The Geometry mode is an estimate based on candle structure; it is not tick-accurate order flow.
• Terms such as “quantum” and “physics” are metaphorical labels for statistical filters and validation heuristics.
Disclaimer
This tool is provided for analytical and educational use only. It does not constitute investment advice. Trading involves risk.
Important note about Intrabar data and TradingView plan limits
This indicator is volume-dependent. When using the Intrabar model, the best results typically come from very low intrabar timeframes such as 1 tick or 1 second (if your symbol and data feed support it). Please check your TradingView subscription plan and data entitlements - access to 1-second/1-tick lower timeframes is commonly restricted to higher-tier plans (often referred to as Premium/Ultra tiers). If intrabar data is not available, the script falls back to relative buy/sell volume estimation (Geometry mode), and results may be less precise.
Market Efficiency Ratio [Interakktive]The Market Efficiency Ratio decomposes price movement into two components: net progress vs wasted movement. This tool exposes the underlying math that most traders never see, helping you understand when price is moving efficiently versus chopping sideways.
Unlike simple trend indicators, this shows you WHY price movement matters — not just whether it's up or down, but how much of that movement was useful directional progress versus noisy oscillation.
█ WHAT IT DOES
• Calculates Efficiency Ratio (0–1 or 0–100) measuring directional progress
• Exposes Net Displacement (how far price actually moved)
• Exposes Path Length (total distance price traveled)
• Calculates Chop Cost (wasted movement)
• Visual zones for high/mid/low efficiency states
█ WHAT IT DOES NOT DO
• NO signals, NO entries/exits, NO buy/sell
• NO performance claims
• NO predictions — purely diagnostic
• This is a tool for understanding price behavior
█ HOW IT WORKS
The efficiency ratio answers one question: "Of all the movement price made, how much was useful progress?"
🔹 THE MATH
Over a lookback period of N bars:
Net Displacement = |Close - Close |
Path Length = Σ |Close - Close | for all bars
Efficiency Ratio = Net Displacement / Path Length
🔹 INTERPRETATION
• Efficiency = 1.0 (100%): Price moved in a straight line — every tick was progress
• Efficiency = 0.5 (50%): Half the movement was wasted in back-and-forth chop
• Efficiency = 0.0 (0%): Price ended exactly where it started — all movement was noise
🔹 CHOP COST
This is the "wasted movement" — how much price traveled without making progress:
Chop Cost = Path Length - Net Displacement
Chop % = Chop Cost / Path Length
High chop cost means lots of effort for little result — a warning sign for trend traders.
█ VISUAL GUIDE
Three efficiency zones:
• GREEN (≥70): High efficiency — strong directional movement
• YELLOW (30-70): Mixed efficiency — some progress, some chop
• RED (<30): Low efficiency — mostly noise, little progress
█ INPUTS
Lookback Length (default: 14)
Number of bars to calculate efficiency over. Higher values produce smoother readings but respond slower to changes.
Smoothing Length (default: 5)
EMA smoothing applied to the output. Reduces noise in the efficiency reading.
Apply Smoothing (default: true)
Toggle EMA smoothing on/off.
Scale Mode (default: 0–100)
Display as percentage (0-100) or decimal ratio (0-1).
Show Reference Bands (default: true)
Display the high/low efficiency threshold lines.
Low/High Efficiency Level (default: 30/70)
Thresholds for classifying efficiency zones.
Overlay Effect (default: None)
• None: No overlay
• Background Tint: Subtle chart background color in high/low zones
• Bar Highlight: Color bars during low efficiency periods
Show Data Window Values (default: true)
Export all raw values (Net Displacement, Path Length, Efficiency, Chop Cost, Chop %) to the data window for analysis.
█ USE CASES
This indicator helps traders understand:
• Why some trends are "clean" and others are "messy"
• When price is consolidating vs trending (without using volume)
• The relationship between movement and progress
• Why high-chop environments are difficult to trade
This is the foundational concept behind more advanced regime detection systems.
█ SUITABLE MARKETS
Works on: Stocks, Futures, Forex, Crypto
Timeframes: All timeframes
Note: This is a price-only indicator — no volume required
█ DISCLAIMER
This indicator is for informational and educational purposes only. It does not constitute financial advice. It does not generate trading signals. Past performance does not guarantee future results. Always conduct your own analysis.
Buy / Sell Volume + % (Classic + Pressure)Buy / Sell Volume % (Classic + Pressure)
Overview
Buy / Sell Volume (Classic + Pressure) is a volume decomposition and dominance indicator designed to help traders understand how trading volume is distributed between buying and selling pressure on each candle.
Instead of treating volume as a single number, this indicator splits total volume into estimated Buy Volume and Sell Volume, visualizes them symmetrically, and summarizes dominance using a compact on-chart dashboard.
The indicator is intended as a context and confirmation tool, not a trade signal generator.
Core Concepts
1. Buy / Sell Volume Decomposition
The indicator estimates buying and selling activity based on the position of the close within the candle’s high–low range:
Closes near the high → more buying pressure
Closes near the low → more selling pressure
Middle closes → balanced activity
This provides a clear visual view of demand vs supply on every bar.
2. Dual Calculation Modes
🔹 Classic Mode (Default)
Uses pure candle-range logic
Buy Volume + Sell Volume = Total Volume (exact conservation)
No smoothing or directional bias
Values closely match traditional volume behavior
Best for:
Structural analysis
Accumulation / distribution studies
Comparing against raw volume
🔹 Pressure Mode
Introduces a directional bias:
Bullish candles slightly favor buy volume
Bearish candles slightly favor sell volume
Optional EMA smoothing reduces noise
Still volume-conserving (Buy + Sell = Total Volume)
Best for:
Identifying dominance
Trend continuation confirmation
Absorption vs initiative activity
Visual Elements
Volume Bars
Buy Volume plotted above zero
Sell Volume plotted below zero
Optional Total Volume Envelope for context
Color by Dominance
Bright colors when one side dominates
Faded colors when dominance is weak
Helps instantly identify:
Accumulation
Distribution
Absorption
Dashboard (Optional)
A compact dashboard displays:
Buy %
Sell %
Dominance State
BUY DOM
SELL DOM
BALANCED
The dashboard can be toggled ON/OFF and switched between Normal and Compact size to suit multi-pane layouts.
How to Use This Indicator
This indicator works best as a confirmation layer, not a standalone system.
Common Use Cases
Confirming breakouts or breakdowns
Spotting accumulation or distribution near key levels
Identifying absorption during consolidations
Filtering false price moves
Examples
Price rising + strong Buy % → constructive demand
Price rising + strong Sell % → possible distribution
Flat price + balanced volume → absorption / compression
What This Indicator Is NOT
❌ Not true order-flow or bid/ask data
❌ Not a buy/sell signal generator
❌ Not predictive on its own
All calculations are candle-based estimations, designed for context and insight, not execution timing.
Best Use
Works on all timeframes
Most reliable on liquid instruments
Especially useful when combined with:
Support / resistance
Trend structure
Market regime or breadth indicators
Summary
Buy / Sell Volume (Classic + Pressure) helps traders go beyond raw volume by visualizing who is in control of each candle, how strong that control is, and whether volume behavior supports price action.
Used correctly, it can significantly improve trade selectivity, confidence, and risk awareness.
QuantLabs The MTF Nasdaq 30 Scanner [Capital Flow and Pressure]Trading the QQQ (Nasdaq) without knowing what the Generals (Apple, Nvidia, Microsoft) are doing is like driving at night with your headlights off. You might see the road right in front of you, but you'll miss the turn coming up.
The QuantLabs MTF Nasdaq 30 Scanner is not just a trend indicator, it is a professional-grade Market Dashboard that visualizes the heartbeat of the entire Nasdaq 100.
Why You Need This
Standard indicators lag. They tell you what happened after the move. This Heatmap tracks the Real-Time Capital Flow of the Top 30 companies that actually move the index ($Trillions in Market Cap).
Key Features
1. The "Spectacular" Precision Heatmap
Organized by Market Cap Size (AAPL/NVDA first).
Instantly spot divergent behavior. Is the market rallying, or is it just Nvidia holding everything up? The Heatmap reveals the truth instantly.
Colors: Neon Cyan (Bullish) vs Hot Pink (Bearish).
2. Triple Spectrum Technology (3-in-1 Timeframes) Why look at one timeframe when you can see three? Every cell in the dashboard displays the trend distance for:
8h (Fast): For scalping entries.
16h (Mid): For swing trends.
24h (Slow): For the major "Big Picture" bias.
Values denote % distance from the Flux Ribbon.
3. The "Net Pressure" Gauge (The Speedometer) A predictive summary footer that calculates the Weighted Pressure of the entire market.
HEAVY (> 0.5%): Strong Trend / Breakout Mode.
MODERATE (0.2% - 0.5%): Healthy, sustained move.
FLAT: Chop / Noise. Stay out.
It also shows exactly how much Capital ($Trillions) is sitting Bullish vs Bearish.
How to Trade with It
Check the "Net Pressure": If it says MODERATE BULLISH, you are looking for Longs only.
Scan the Top Row: Are the "Big 5" (AAPL, NVDA, MSFT...) aligned with the pressure?
Wait for Alignment: If the 8h, 16h, and 24h metrics all turn Cyan, that is a "Quantum Lock"—a high probability breakout signal.
Simple. Powerful. Neon. Add it to your chart and stop guessing the direction.
Credits: Built with 💜 by David James @ QuantLabs
JK Scalp - Nishith RajwarJK Scalp Nishith Rajwar
Multi-Stochastic Rotation & Momentum Scalping Framework
JK Scalp is a rule-based momentum and rotation oscillator designed for short-term scalping and intraday execution.
It focuses on how momentum rotates across multiple stochastic speeds, instead of relying on a single oscillator or lagging averages.
This is an execution aid, not a predictive indicator.
🧠 Concept & Originality
Unlike standard stochastic tools, JK Scalp uses four synchronized stochastic layers:
• Fast (9,3) → execution timing
• Medium (14,3) → structure confirmation
• Slow (44,3) → swing context
• Trend (60,10,10) → dominant momentum regime
The core idea is quad-rotation:
High-probability trades occur when all momentum layers rotate together after reaching an extreme.
This script combines:
• Momentum rotation
• Divergence logic
• Flag continuation logic
• Trend-state filtering
into a single cohesive framework, not a simple indicator mashup.
📊 How to Use (Step-by-Step)
1️⃣ Best Timeframes
• Scalping: 1m – 3m
• Intraday: 5m – 15m
• Avoid higher timeframes (not designed for swing holding)
Works best on:
• Index options
• Index futures
• Highly liquid stocks
• Crypto majors
2️⃣ Understanding the Signals
🔁 Quad Rotation (Core Signal)
A valid rotation requires:
• Fast, Medium, Slow, and Trend stochastic moving in the same direction
• Momentum exiting Overbought / Oversold zones
• Trend stochastic supporting the move
This filters out random oscillator noise.
3️⃣ Entry Conditions
🟢 LONG Setup
• Bullish quad rotation
• Either:
– Bullish divergence OR
– Bullish flag pullback
• Fast stochastic turning up
🔴 SHORT Setup
• Bearish quad rotation
• Either:
– Bearish divergence OR
– Bearish flag pullback
• Fast stochastic turning down
⚠️ Signals are confirmation-based, not anticipatory.
4️⃣ SUPER LONG / SUPER SHORT
These appear only when:
• Quad rotation
• Divergence confirmation
They represent high-confidence momentum inflection zones, not guaranteed reversals.
5️⃣ Stop-Loss Visualization
Optional SL zones are plotted using:
• Recent swing high / low
• ATR-based buffer (configurable)
This helps traders visualize risk, not automate exits.
🎨 Visual System (Why It Looks Different)
• Multi-layer glow effects → momentum strength
• Dynamic cloud → fast vs trend dominance
• Color-shifting fast line → acceleration vs decay
• Chart overlays → execution clarity without clutter
Everything is designed for speed and readability during live trading.
⭐ Unique Selling Points (USP)
✅ Multi-speed stochastic rotation (not single-line signals)
✅ Context-first, not signal spam
✅ Built-in divergence + continuation logic
✅ Non-repainting logic
✅ Designed for scalpers, not hindsight analysis
✅ Works across indices, options, crypto, and futures
⚠️ Important Notes
• Not a standalone trading system
• Best combined with:
– Market structure
– Key levels
– Session timing
• Avoid low-liquidity or news-spike candles
This indicator guides execution, it does not replace discretion.
👤 Who This Is For
• Scalpers & intraday traders
• Options traders needing precise timing
• Traders who understand momentum & structure
• Users who want fewer but higher-quality signals
🏁 Summary
JK Scalp helps you trade momentum rotation, not overbought/oversold myths.
Wait for alignment. Execute with discipline.
Liquidity Levels Pro Tool - thewallranka
Liquidity Levels Pro Tool is a market-structure and liquidity-mapping indicator designed to help discretionary futures and index traders identify statistically relevant price levels where reactions, continuations, or liquidity sweeps are more likely to occur.
This script is a decision-support tool, not a signal generator. It does not issue buy/sell alerts or predict future price movement. Instead, it organizes and scores liquidity information so traders can make their own contextual decisions.
What this indicator does
The script continuously detects and maintains liquidity zones derived from price pivots, then evaluates those zones using multiple structural and contextual factors:
Repeated price interaction (touches)
Freshness (time since last interaction)
Confluence with key reference levels
Reaction behavior after contact
Session relevance (RTH vs overnight)
Market regime (trend vs mean reversion)
Time-of-day effects (open, midday, power hour)
Only the most relevant zones—based on a dynamic scoring system—are displayed to reduce chart clutter and focus attention on levels that have historically mattered.
Core components
1. Liquidity Zones
Zones are built from pivot highs and lows and expanded into areas using a configurable tick-based padding. Nearby zones are merged to avoid redundancy.
Each zone is continuously evaluated and assigned a score (0–100) reflecting its relative importance.
2. Zone Scoring (No Lookahead)
Zone scores are based on:
Number of confirmed interactions
Recency of the last touch
Confluence with prior day/week levels, VWAP, and Opening Range
Reaction quality after touches (speed and follow-through)
Session alignment (zones that “work” in the current session are favored)
Penalties after liquidity sweeps
Zones are not forward-looking and do not rely on future data.
3. Context Engine
The script classifies the current environment using VWAP slope and distance:
Trend (up or down)
Mean reversion
Mixed/transition
Time-of-day context (Open, Midday, Power Hour) is also tracked internally and influences zone scoring.
This context is displayed in the HUD to support situational awareness, not automated decisions.
4. Liquidity Sweeps
Optional sweep detection highlights situations where price trades beyond a zone and closes back inside, indicating potential stop runs or failed breakouts.
Sweeps are rate-limited and applied conservatively to avoid visual noise.
5. Trade Planning Levels (Optional)
When enabled, the script highlights the nearest high-quality liquidity level above and below price based on score thresholds.
These are intended as reference targets, not trade entries or exits.
HUD (Heads-Up Display)
The on-chart HUD summarizes:
Key reference levels (prior day/week, Opening Range)
Nearest strong liquidity above/below price
Market regime and time-of-day context
Distance to levels (ticks or points)
The HUD is fully optional, positionable, and includes resizable modes (Small / Medium / Large) to fit different chart layouts.
How to use this tool
This indicator is best used as part of a discretionary trading process, for example:
Identifying areas where price is more likely to react or pause
Framing trades around higher-quality structure instead of arbitrary levels
Filtering setups based on session and regime context
Managing expectations near known liquidity rather than chasing price
It is intentionally designed not to provide trade signals.
Limitations and important notes
This script does not predict outcomes or guarantee reactions
High-scoring zones can still fail
Liquidity behavior is context-dependent and probabilistic
No performance claims or backtested results are provided
The indicator should not be used in isolation
Past behavior does not imply future results.
Chart and usage notes
The script is intended for standard time-based charts
Recommended for liquid futures and index products
Use a clean chart for clarity when publishing or sharing
No external indicators are required
Final note
Liquidity Levels Pro (Tool) — v6 is designed to organize complex market structure into a clear, readable framework, allowing traders to focus on execution and risk management rather than raw level detection.
This script reflects an analytical approach to intraday liquidity and structure, not an automated trading system.
Market + Direction + Entry + Hold + Exit v1.5 FINALOverview
This script is a complete trend-based trading framework designed to filter market conditions, determine directional bias, detect high-quality pullback entries, manage active trades, and identify trend-weakening exit points.
It is optimized for NQ futures, Gold (XAUUSD), and Bitcoin, with adaptive parameters for each asset.
The logic focuses on trading only when conditions are favorable, aligning entries with the primary trend, and avoiding low-probability setups.
1. Market Condition Filter
Before any signal appears, the script checks whether the market is active using three conditions:
ATR compared to ATR moving average (volatility condition)
Volume compared to average volume (liquidity condition)
Price distance from VWAP (suppression of mean-reversion environments)
A trade environment is considered active when at least two of these three conditions are positive.
2. Trend Direction Filter
Directional bias is defined by:
EMA21 relative to EMA55
Price relative to VWAP
Heikin-Ashi structure
When these conditions align, the script switches into long-only or short-only mode.
No counter-trend signals are displayed.
3. Entry Logic (L, L2, L3 and S, S2, S3)
The system identifies pullback entries within a confirmed trend.
Long entries require:
Uptrend confirmation
Price dipping toward EMA21 or EMA55
A constructive Heikin-Ashi candle
Market environment active
Short entries mirror the same structure in bearish conditions.
Re-entries (L2, L3, S2, S3) are given only if the trend remains intact after the first entry.
4. Hold Logic
A hold signal appears if momentum remains aligned with the trend.
Momentum is evaluated using the Stochastic indicator (K and D lines).
5. Exit Logic
An exit signal appears when:
The recent structural low (for longs) or high (for shorts) is broken, and
The EMA slope indicates weakening trend strength
This combination identifies high-probability trend exhaustion.
How to Use
Add the script to your chart.
Select an asset preset (NQ, GOLD, BTC).
Wait for the market to be active.
Follow the entry signals (L, L2, L3 or S, S2, S3).
Hold signals help confirm continuation.
Exit signals indicate potential trend reversal or weakness.
Feature Summary
Market environment filter
Trend direction filter
Pullback-based entry system
Multi-stage re-entry framework
Momentum-based hold signal
Structure-based exit
Asset-adaptive parameters
Clean chart visualization
Disclaimer
This script is for research and educational use.
It does not constitute financial advice.
Always backtest before using in live markets.
개요
이 스크립트는 시장 상태 필터링, 추세 방향 판단, 고품질 눌림목 진입, 보유 판단, 추세 약화 기반 청산까지 모두 포함하는 완전한 트레이딩 프레임워크입니다.
NQ, 골드(XAUUSD), 비트코인에 맞게 최적화되어 있습니다.
1. 시장 필터
다음 세 가지 중 두 가지 이상이 충족될 때만 매매 환경을 ‘활성’으로 판단합니다.
ATR 기준 변동성 체크
거래량 활성도 체크
가격의 VWAP 거리 체크
2. 방향(추세) 필터
다음 조건을 기반으로 상승·하락 추세를 결정합니다.
EMA21 vs EMA55
가격 vs VWAP
Heikin-Ashi 구조
이 조건이 일치할 때만 롱 전용 또는 숏 전용 모드로 진입합니다.
3. 진입 로직
추세가 유지되는 상태에서 EMA21 또는 EMA55까지 눌림이 나올 때
L 또는 S 신호를 제공합니다.
추세가 유지되면 L2/L3, S2/S3 재진입 신호가 추가로 발생합니다.
4. 보유(Hold)
모멘텀이 추세 방향과 일치할 때 보유 신호를 제공합니다.
5. 청산(Exit)
다음 두 조건이 동시에 나타날 때 청산 신호가 표시됩니다.
직전 구조(스윙)가 붕괴될 때
EMA 기울기가 약화될 때
사용 방법
차트에 스크립트를 추가합니다.
자산 프리셋(NQ, GOLD, BTC)을 선택합니다.
시장이 활성일 때만 신호를 참고합니다.
L/S 진입 신호와 보유/청산 신호를 활용해 매매 흐름을 관리합니다.
Index Construction Tool🙏🏻 The most natural mathematical way to construct an index || portfolio, based on contraharmonic mean || contraharmonic weighting. If you currently traded assets do not satisfy you, why not make your own ones?
Contraharmonic mean is literally a weighted mean where each value is weighted by itself.
...
Now let me explain to you why contraharmonic weighting is really so fundamental in two ways: observation how the industry (prolly unknowably) converged to this method, and the real mathematical explanation why things are this way.
How it works in the industry.
In indexes like TVC:SPX or TVC:DJI the individual components (stocks) are weighted by market capitalization. This market cap is made of two components: number of shares outstanding and the actual price of the stock. While the number of shares holds the same over really long periods of time and changes rarely by corporate actions , the prices change all the time, so market cap is in fact almost purely based on prices itself. So when they weight index legs by market cap, it really means they weight it by stock prices. That’s the observation: even tho I never dem saying they do contraharmonic weighting, that’s what happens in reality.
Natural explanation
Now the main part: how the universe works. If you build a logical sequence of how information ‘gradually’ combines, you have this:
Suppose you have the one last datapoint of each of 4 different assets;
The next logical step is to combine these datapoints somehow in pairs. Pairs are created only as ratios , this reveals relationships between components, this is the only step where these fundamental operations are meaningful, they lose meaning with 3+ components. This way we will have 16 pairs: 4 of them would be 1s, 6 real ratios, and 6 more inverted ratios of these;
Then the next logical step is to combine all the pairs (not the initial single assets) all together. Naturally this is done via matrices, by constructing a 4x4 design matrix where each cell will be one of these 16 pairs. That matrix will have ones in the main diagonal (because these would be smth like ES/ES, NQ/NQ etc). Other cells will be actual ratios, like ES/NQ, RTY/YM etc;
Then the native way to compress and summarize all this structure is to do eigendecomposition . The only eigenvector that would be meaningful in this case is the principal eigenvector, and its loadings would be what we were hunting for. We can multiply each asset datapoint by corresponding loading, sum them up and have one single index value, what we were aiming for;
Now the main catch: turns out using these principal eigenvector loadings mathematically is Exactly the same as simply calculating contraharmonic weights of those 4 initial assets. We’re done here.
For the sceptics, no other way of constructing the design matrix other than with ratios would result in another type of a defined mean. Filling that design matrix with ratios Is the only way to obtain a meaningful defined mean, that would also work with negative numbers. I’m skipping a couple of details there tbh, but they don’t really matter (we don’t need log-space, and anyways the idea holds even then). But the core idea is this: only contraharmonic mean emerges there, no other mean ever does.
Finally, how to use the thing:
Good news we don't use contraharmonic mean itself because we need an internals of it: actual weights of components that make this contraharmonic mean, (so we can follow it with our position sizes). This actually allows us to also use these weights but not for addition, but for subtraction. So, the script has 2 modes (examples would follow):
Addition: the main one, allows you to make indexes, portfolios, baskets, groups, whatever you call it. The script will simply sum the weighted legs;
Subtraction: allows you to make spreads, residual spreads etc. Important: the script will subtract all the symbols From the first one. So if the first we have 3 symbols: YM, ES, RTY, the script will do YM - ES - RTY, weights would be applied to each.
At the top tight corner of the script you will see a lil table with symbols and corresponding weights you wanna trade: these are ‘already’ adjusted for point value of each leg, you don’t need to do anything, only scale them all together to meet your risk profile.
Symbols have to be added the way the default ones are added, one line : one symbol.
Pls explore the script’s Style setting:
You can pick a visualization method you like ! including overlays on the main chart pane !
Script also outputs inferred volume delta, inferred volume and inferred tick count calculated with the same method. You can use them in further calculations.
...
Examples of how you can use it
^^ Purple dotted line: overlay from ICT script, turned on in Style settings, the contraharmonic mean itself calculated from the same assets that are on the chart: CME_MINI:RTY1! , CME_MINI:ES1! , CME_MINI:NQ1! , CBOT_MINI:YM1!
^^ precious metals residual spread ( COMEX:GC1! COMEX:SI1! NYMEX:PL1! )
^^ CBOT:ZC1! vs CBOT:ZW1! grain spread
^^ BDI (Bid Dope Index), constructed from: NYSE:MO , NYSE:TPB , NYSE:DGX , NASDAQ:JAZZ , NYSE:IIPR , NASDAQ:CRON , OTC:CURLF , OTC:TCNNF
^^ NYMEX:CL1! & ICEEUR:BRN1! basket
^^ resulting index price, inferred volume delta, inferred volume and inferred tick count of CME_MINI:NQ1! vs CME_MINI:ES1! spread
...
Synthetic assets is the whole new Universe you can jump into and never look back, if this is your way
...
∞
Volatility Targeting: Single Asset [BackQuant]Volatility Targeting: Single Asset
An educational example that demonstrates how volatility targeting can scale exposure up or down on one symbol, then applies a simple EMA cross for long or short direction and a higher timeframe style regime filter to gate risk. It builds a synthetic equity curve and compares it to buy and hold and a benchmark.
Important disclaimer
This script is a concept and education example only . It is not a complete trading system and it is not meant for live execution. It does not model many real world constraints, and its equity curve is only a simplified simulation. If you want to trade any idea like this, you need a proper strategy() implementation, realistic execution assumptions, and robust backtesting with out of sample validation.
Single asset vs the full portfolio concept
This indicator is the single asset, long short version of the broader volatility targeted momentum portfolio concept. The original multi asset concept and full portfolio implementation is here:
That portfolio script is about allocating across multiple assets with a portfolio view. This script is intentionally simpler and focuses on one symbol so you can clearly see how volatility targeting behaves, how the scaling interacts with trend direction, and what an equity curve comparison looks like.
What this indicator is trying to demonstrate
Volatility targeting is a risk scaling framework. The core idea is simple:
If realized volatility is low relative to a target, you can scale position size up so the strategy behaves like it has a stable risk budget.
If realized volatility is high relative to a target, you scale down to avoid getting blown around by the market.
Instead of always being 1x long or 1x short, exposure becomes dynamic. This is often used in risk parity style systems, trend following overlays, and volatility controlled products.
This script combines that risk scaling with a simple trend direction model:
Fast and slow EMA cross determines whether the strategy is long or short.
A second, longer EMA cross acts as a regime filter that decides whether the system is ACTIVE or effectively in CASH.
An equity curve is built from the scaled returns so you can visualize how the framework behaves across regimes.
How the logic works step by step
1) Returns and simple momentum
The script uses log returns for the base return stream:
ret = log(price / price )
It also computes a simple momentum value:
mom = price / price - 1
In this version, momentum is mainly informational since the directional signal is the EMA cross. The lookback input is shared with volatility estimation to keep the concept compact.
2) Realized volatility estimation
Realized volatility is estimated as the standard deviation of returns over the lookback window, then annualized:
vol = stdev(ret, lookback) * sqrt(tradingdays)
The Trading Days/Year input controls annualization:
252 is typical for traditional markets.
365 is typical for crypto since it trades daily.
3) Volatility targeting multiplier
Once realized vol is estimated, the script computes a scaling factor that tries to push realized volatility toward the target:
volMult = targetVol / vol
This is then clamped into a reasonable range:
Minimum 0.1 so exposure never goes to zero just because vol spikes.
Maximum 5.0 so exposure is not allowed to lever infinitely during ultra low volatility periods.
This clamp is one of the most important “sanity rails” in any volatility targeted system. Without it, very low volatility regimes can create unrealistic leverage.
4) Scaled return stream
The per bar return used for the equity curve is the raw return multiplied by the volatility multiplier:
sr = ret * volMult
Think of this as the return you would have earned if you scaled exposure to match the volatility budget.
5) Long short direction via EMA cross
Direction is determined by a fast and slow EMA cross on price:
If fast EMA is above slow EMA, direction is long.
If fast EMA is below slow EMA, direction is short.
This produces dir as either +1 or -1. The scaled return stream is then signed by direction:
avgRet = dir * sr
So the strategy return is volatility targeted and directionally flipped depending on trend.
6) Regime filter: ACTIVE vs CASH
A second EMA pair acts as a top level regime filter:
If fast regime EMA is above slow regime EMA, the system is ACTIVE.
If fast regime EMA is below slow regime EMA, the system is considered CASH, meaning it does not compound equity.
This is designed to reduce participation in long bear phases or low quality environments, depending on how you set the regime lengths. By default it is a classic 50 and 200 EMA cross structure.
Important detail, the script applies regime_filter when compounding equity, meaning it uses the prior bar regime state to avoid ambiguous same bar updates.
7) Equity curve construction
The script builds a synthetic equity curve starting from Initial Capital after Start Date . Each bar:
If regime was ACTIVE on the previous bar, equity compounds by (1 + netRet).
If regime was CASH, equity stays flat.
Fees are modeled very simply as a per bar penalty on returns:
netRet = avgRet - (fee_rate * avgRet)
This is not realistic execution modeling, it is just a simple turnover penalty knob to show how friction can reduce compounded performance. Real backtesting should model trade based costs, spreads, funding, and slippage.
Benchmark and buy and hold comparison
The script pulls a benchmark symbol via request.security and builds a buy and hold equity curve starting from the same date and initial capital. The buy and hold curve is based on benchmark price appreciation, not the strategy’s asset price, so you can compare:
Strategy equity on the chart symbol.
Buy and hold equity for the selected benchmark instrument.
By default the benchmark is TVC:SPX, but you can set it to anything, for crypto you might set it to BTC, or a sector index, or a dominance proxy depending on your study.
What it plots
If enabled, the indicator plots:
Strategy Equity as a line, colored by recent direction of equity change, using Positive Equity Color and Negative Equity Color .
Buy and Hold Equity for the chosen benchmark as a line.
Optional labels that tag each curve on the right side of the chart.
This makes it easy to visually see when volatility targeting and regime gating change the shape of the equity curve relative to a simple passive hold.
Metrics table explained
If Show Metrics Table is enabled, a table is built and populated with common performance statistics based on the simulated daily returns of the strategy equity curve after the start date. These include:
Net Profit (%) total return relative to initial capital.
Max DD (%) maximum drawdown computed from equity peaks, stored over time.
Win Rate percent of positive return bars.
Annual Mean Returns (% p/y) mean daily return annualized.
Annual Stdev Returns (% p/y) volatility of daily returns annualized.
Variance of annualized returns.
Sortino Ratio annualized return divided by downside deviation, using negative return stdev.
Sharpe Ratio risk adjusted return using the risk free rate input.
Omega Ratio positive return sum divided by negative return sum.
Gain to Pain total return sum divided by absolute loss sum.
CAGR (% p/y) compounded annual growth rate based on time since start date.
Portfolio Alpha (% p/y) alpha versus benchmark using beta and the benchmark mean.
Portfolio Beta covariance of strategy returns with benchmark returns divided by benchmark variance.
Skewness of Returns actually the script computes a conditional value based on the lower 5 percent tail of returns, so it behaves more like a simple CVaR style tail loss estimate than classic skewness.
Important note, these are calculated from the synthetic equity stream in an indicator context. They are useful for concept exploration, but they are not a substitute for professional backtesting where trade timing, fills, funding, and leverage constraints are accurately represented.
How to interpret the system conceptually
Vol targeting effect
When volatility rises, volMult falls, so the strategy de risks and the equity curve typically becomes smoother. When volatility compresses, volMult rises, so the system takes more exposure and tries to maintain a stable risk budget.
This is why volatility targeting is often used as a “risk equalizer”, it can reduce the “biggest drawdowns happen only because vol expanded” problem, at the cost of potentially under participating in explosive upside if volatility rises during a trend.
Long short directional effect
Because direction is an EMA cross:
In strong trends, the direction stays stable and the scaled return stream compounds in that trend direction.
In choppy ranges, the EMA cross can flip and create whipsaws, which is where fees and regime filtering matter most.
Regime filter effect
The 50 and 200 style filter tries to:
Keep the system active in sustained up regimes.
Reduce exposure during long down regimes or extended weakness.
It will always be late at turning points, by design. It is a slow filter meant to reduce deep participation, not to catch bottoms.
Common applications
This script is mainly for understanding and research, but conceptually, volatility targeting overlays are used for:
Risk budgeting normalize risk so your exposure is not accidentally huge in high vol regimes.
System comparison see how a simple trend model behaves with and without vol scaling.
Parameter exploration test how target volatility, lookback length, and regime lengths change the shape of equity and drawdowns.
Framework building as a reference blueprint before implementing a proper strategy() version with trade based execution logic.
Tuning guidance
Lookback lower values react faster to vol shifts but can create unstable scaling, higher values smooth scaling but react slower to regime changes.
Target volatility higher targets increase exposure and drawdown potential, lower targets reduce exposure and usually lower drawdowns, but can under perform in strong trends.
Signal EMAs tighter EMAs increase trade frequency, wider EMAs reduce churn but react slower.
Regime EMAs slower regime filters reduce false toggles but will miss early trend transitions.
Fees if you crank this up you will see how sensitive higher turnover parameter sets are to friction.
Final note
This is a compact educational demonstration of a volatility targeted, long short single asset framework with a regime gate and a synthetic equity curve. If you want a production ready implementation, the correct next step is to convert this concept into a strategy() script, add realistic execution and cost modeling, test across multiple timeframes and market regimes, and validate out of sample before making any decision based on the results.
MNQ Quant Oscillator Lab v2.1MNQ Quant Oscillator Lab v2.1 — Clean Namespaces
Adaptive LinReg Oscillator + Auto Regime Switching + MTF Confirmation + MOEP Gate + Research Harness
MNQ Quant Oscillator Lab is a research-grade oscillator framework designed for MNQ/NQ (and other liquid futures/indices) on 1-minute and intraday timeframes. It combines a linear-regression-based detrended oscillator with quant-style normalization, adaptive parameterization, regime switching, multi-timeframe confirmation, and an optional MOEP (Minimum Optimal Entry Point) gate. The goal is to provide a customizable signal laboratory that is stable in real time, non-repainting by default, and suitable for systematic experimentation.
What this indicator does
1) Core oscillator (quant-normalized)
The indicator computes a linear regression (LinReg) detrended signal and expresses it as a z-scored oscillator for portability across volatility regimes and assets. You can switch the oscillator “transform family” via Oscillator type:
LinReg Residual / Residual Z: detrended residual (mean-reversion sensitive)
LinReg Slope Z: regression slope (trend-derivative sensitive)
LogReturn Z: log-return oscillator (momentum-style)
VolNorm Return Z: volatility-normalized returns (risk-scaled)
This yields a single oscillator that is comparable over time, not tied to raw point values.
2) Adaptive length (dynamic calibration)
When enabled, the regression length is automatically adapted using a volatility-regime proxy (ATR% z-scored → logistic mapping). High volatility typically shortens the effective lookback; low volatility allows longer lookbacks. This helps the oscillator remain responsive during expansions while staying stable in compressions.
Important: the adaptive logic is implemented with safe warmup behavior, so it will not throw NaN errors on early bars.
3) Adaptive thresholds (dynamic bands)
Instead of static overbought/oversold levels, the indicator can compute dynamic upper/lower bands from the oscillator’s own distribution (rolling mean + sigma). This creates thresholds that adjust automatically to regime changes.
4) Auto regime switching (Trend vs Mean Reversion)
With Auto regime switch enabled, the indicator selects whether to behave as a Trend system or a Mean Reversion system using an interpretable heuristic:
Trend regime when EMA-spread is strong relative to ATR and ATR is rising
Otherwise defaults to Mean Reversion
This prevents running mean-reversion logic in trend breakouts and reduces “mode mismatch.”
5) Multi-timeframe (MTF) confirmation (optional)
MTF confirmation can be enabled to require that the higher timeframe oscillator sign aligns with the direction of the signal. This is useful for reducing noise on MNQ 1m by requiring higher-timeframe structure agreement (e.g., 5m or 15m).
6) MOEP Gate (optional “institutional” filter)
The MOEP gate is a confluence score filter intended to reduce low-quality signals. It aggregates multiple components into a 0–100 score:
BB/KC squeeze condition
Expansion proxy
Trend proxy
Momentum proxy (RSI-based)
Volume catalyst (volume z-score)
Structure break (highest/lowest break)
You can set:
Score threshold (minimum score required)
Minimum components required (forces diversity of evidence)
When enabled, a signal must satisfy both oscillator logic and MOEP confluence conditions.
7) Research harness (NON-CAUSAL, OFF by default)
A built-in research mode evaluates signals using future bars to compute basic forward excursion statistics:
MFE (max favorable excursion)
MAE (max adverse excursion)
Simple win-rate proxy based on MFE vs MAE
This feature is strictly for offline analysis and tuning. It is disabled by default and should not be considered “live-safe” because it uses future information for evaluation.
Signals and interpretation
Mean Reversion regime
Long: oscillator is below the lower band and turns back upward across it
Short: oscillator is above the upper band and turns back downward across it
Trend regime
Long: oscillator crosses above zero (optionally requires structure break confirmation)
Short: oscillator crosses below zero (optionally requires structure break confirmation)
Hybrid
When Hybrid is selected (manual mode), the indicator allows both trend and mean-reversion triggers, but still respects the filters and gates you enable.
Recommended starting configuration (MNQ 1m)
If you want stable, high-quality signals first, then expand into research:
Use RTH only: ON
Auto regime switch: ON
Adaptive length: ON
Adaptive bands: ON
MTF confirmation: OFF initially (turn ON later with 5m)
MOEP Gate: OFF initially (turn ON after you confirm base behavior)
Research harness: OFF (only enable for tuning studies)
Practical notes / transparency
The indicator is designed to be stable on live bars (optional confirmed-bar behavior reduces flicker).
No repainting logic is used for signals.
Any “performance” numbers shown under Research harness are not tradable metrics; they are forward-looking evaluation outputs intended strictly for experimentation.
Disclaimer
This script is provided for educational and research purposes only and does not constitute financial advice. Futures trading involves substantial risk, including the possibility of loss exceeding initial investment.
Trend detection zero lag Trend Detection Zero-Lag (v6)
Trend Detection Zero-Lag is a high-performance trend identification indicator designed for intraday traders, scalpers, and swing traders who require fast trend recognition with minimal lag. It combines a zero-lag Hull Moving Average, slope analysis, swing structure logic, and adaptive volatility sensitivity to deliver early yet stable trend signals.
This indicator is optimized for real-time decision-making, particularly in fast markets where traditional moving averages react too slowly.
Core Features
🔹 Zero-Lag Trend Engine
Uses a Zero-Lag Hull Moving Average (HMA) to reduce lag by approximately 40–60% versus standard moving averages.
Provides earlier trend shifts while maintaining smoothness.
🔹 Multi-Factor Trend Detection
Trend direction is determined using a hybrid engine:
HMA slope (momentum direction)
Rising / falling confirmation
Swing structure detection (HH/HL vs LH/LL)
ATR-adjusted dynamic sensitivity
This approach allows fast flips when conditions change, without excessive noise.
Adaptive Volatility Sensitivity
Sensitivity dynamically adjusts based on ATR relative to price
In high volatility: faster reaction
In low volatility: smoother, more stable trend state
This ensures the indicator adapts across:
Trend days
Range days
Volatility expansion or contraction
Trend Duration Intelligence
The indicator tracks historical trend durations and maintains a rolling memory of recent bullish and bearish phases.
From this, it calculates:
Current trend duration
Average historical duration for the active trend direction
This helps traders gauge:
Whether a trend is early, mature, or extended
Probability of continuation vs exhaustion
Strength Scoring
A normalized Trend Strength Score (0–100) is calculated using:
Zero-lag slope magnitude
ATR normalization
This provides a quick read on:
Weak / choppy trends
Healthy trend continuation
Overextended momentum
Visual Design
Color-coded Zero-Lag HMA
Bullish trend → user-defined bullish color
Bearish trend → user-defined bearish color
Designed for dark mode / neon-style charts
Clean overlay with no clutter
Trend Detection Zero-Lag is built for traders who need:
Faster trend recognition
Adaptive behavior across market regimes
Structural confirmation beyond simple moving averages
Clear, actionable visual signals






















