Percentage Price Over SMAReturn the percentage of closing prices greater than SMA's with periods within a user-selected range. An exponential moving average applied to these results is also displayed (in orange).
Settings
Min : Minimum period of the SMA in the range
Max : Maximum period of the SMA in the range
Smooth : Period of the EMA
Src : Input series of the indicator
Usage
The indicator is a normalized oscillator. A value of 100 indicates that 100% of the current closing price is over SMA's with periods ranging from min to max , this indicates a bullish market, while a value of 0 would indicate a bearish market.
In this image the indicator use min = 50 and max = 200, here AMD has been strongly bullish at the start, and ended being strongly bearish at the end, during this bullish period the indicator is over its overbought level, while it is under its oversold level during the bearish period.
In case the market is ranging we can expect the indicator to be around 50%, using the smoothed result might be more useful to detect ranging markets with this indicator.
If the smoothed result is within the overbought/oversold levels, then we can say that the market is either ranging or transitioning from a bullish/bearish market to an opposite one.
ค้นหาในสคริปต์สำหรับ "oscillator"
Z Score Enhanced Time Segmented Volume (Multi MA)**THIS VERSION HAS BEEN STANDARDIZED WITH A Z SCORE CALCULATION AND ALLOWS THE USER TO SELECT WHICH MOVING AVERAGE THEY WOULD LIKE TO UTILIZE FOR THE SIGNAL LINE**
Chart shows the Non-Standardized Enhanced Time Segmented Volume (Multi MA) with default settings on top and the Standardized version with default settings on the bottom.
Time Segmented Volume was developed by Worden Brothers, Inc to be a leading indicator by comparing various time segments of both price and volume . Essentialy it is designed to measure the amount of money flowing in and out of an instrument.
Time Segmented Volume was originally ported to TradingView by user @liw0 and later corrected by user @vitelot. I never quite understood how to read Time Segmented Volume until I ran across a version by user @storma where they indicated when price would be long or short, but that code also utilized the incorrect calculation from user @liw0.
In an effort to make Time Segmented Volume more accessible and easier to read, I have re-coded it here. The calculations are based on the code from @vitelot and I have added direction indicators below the chart.
If the histogram (TSV) is greater than zero and greater than the moving average, price should be moving long and there will be a green box below the chart.
If TSV falls below the moving average while still being greater than zero, the trend may be exhausting and has been coded to read Price Action Long - FAILURE with a black x below the chart.
If the histogram (TSV) is less than zero and less than the moving average, price should be moving short and there will be a red box below the chart.
If TSV rises above the moving average while still being less than zero, the trend may be exhausting and has been coded to read Price Action Short - FAILURE with a black x below the chart.
At times, the moving average may be above zero while TSV is below zero or vice versa. In these situations the chart will indicate long or short based on whether or not TSV is greater or less than zero. It is possible a new trend may be forming as the moving average obviously lags, but also possible price is consolidating with little volume and causing TSV to oscillate close to zero.
**Z Score // Standardized Option **
Thist Standardized code implements all of the above but also allows the user to select a threshold level that should not need to be adjusted for each instrument (since the output is standardized).
If the TSV value meets the long and short signal requirements above and TSV is greater than the threshold values a green or red box will print ABOVE the oscillator. The histogram will also change color based on which threshold TSV has met.
This calculation allows us to compare current volatility to the mean (moving average) of the population (Z-Length). The closer the TSV Z-Score is to the mean, the closer it will be to the Zero Line and therefore price is likely consolidating and choppy. The farther TSV Z-Score is from the mean, the more likely price is trending.
The MA Mode determines the Moving Average used to calculate TSV itself. The Z-Score is ALWAYS calculated with a simple moving average (as that is the standard calculation for Z-Score).
The Threshold Levels are the levels at which TSV Z-Score will change from gray to yellow, orange, green ( bullish ), or red ( bearish ).
Statistically speaking, confidence levels in relation to Z-Score are noted below. The built in Threshold Levels are the positive and negative values for 90%, 95%, and 99%. This would indicate when volatility is greater than these values they are out of the ordinary from the standard range. You may wish to adjust these levels for TSV Z-Score to be more responsive to your trading needs
80% :: 1.28
85% :: 1.44
90% :: 1.64
95% :: 1.96
99% :: 2.58
The Z Length is the period for which the Z Score is calculated
More information regarding Time Segmented Volume can be found here: www.worden.com
Original code ported by @liw0
Corrected by @vitelot
Updated/Enhancements by @eylwithsteph with inspiration from @storma
Multiple MA Options Credits to @Fractured and @lejmer
Bits and Pieces from @AlexGrover, @Montyjus, and @Jiehonglim
As always, trade at your own risk.
Dual Purpose Pine Based CorrelationThis is my "Pine-based" correlation() function written in raw Pine Script. Other names applied to it are "Pearson Correlation", "Pearson's r", and one I can never remember being "Pearson Product-Moment Correlation Coefficient(PPMCC)". There is two basic ways to utilize this script. One is checking correlation with another asset such as the S&P 500 (provided as a default). The second is using it as a handy independent indicator correlated to time using Pine's bar_index variable. Also, this is in fact two separate correlation indicators with independent period adjustments, so I guess you could say this indicator has a dual purpose split personality. My intention was to take standard old correlation and apply a novel approach to it, and see what happens. Either way you use it, I hope you may find it most helpful enough to add to your daily TV tool belt.
You will notice I used the Pine built-in correlation() in combination with my custom function, so it shows they are precisely equal, even when the first two correlation() parameters are reversed on purpose or by accident. Additionally, there's an interesting technique to provide a visually appealing line with two overlapping plot()s combined together. I'm sure many members may find that plotting tactic useful when a bird's nest of plotting is occurring on the overlay pane in some scenarios. One more thing about correlation is it's always confined to +/-1.0 irregardless of time intervals or the asset(s) it is applied to, making it a unique oscillator.
As always, I have included advanced Pine programming techniques that conform to proper "Pine Etiquette". For those of you who are newcomers to Pine Script, this code release may also help you comprehend the "Power of Pine" by employing advanced programming techniques in Pine exhibiting code utilization in a most effective manner. One of the many tricks I applied here was providing floating point number safeties for _correlation(). While it cannot effectively use a floating point number, it won't error out in the event this should occur especially when applying "dominant cycle periods" to it, IF you might attempt this.
NOTICE: You may have observed there is a sqrt() custom function and you may be thinking... "Did he just sick and twistedly overwrite the Pine built-in sqrt() function?" The answer is... YES, I am and yes I did! One thing I noticed, is that it does provide slightly higher accuracy precision decimal places compared to the Pine built-in sqrt(). Be forewarned, "MY" sqrt() is technically speaking slower than snail snot compared to the native Pine sqrt(), so I wouldn't advise actually using it religiously in other scripts as a daily habit. It is seemingly doing quite well in combination with these simple calculations without being "sluggish". Lastly, of course you may always just delete the custom sqrt() function, via Pine Editor, and then the script will still operate flawlessly, yet more efficiently.
Features List Includes:
Dark Background - Easily disabled in indicator Settings->Style for "Light" charts or with Pine commenting
AND much, much more... You have the source!
The comments section below is solely just for commenting and other remarks, ideas, compliments, etc... regarding only this indicator, not others. When available time provides itself, I will consider your inquiries, thoughts, and concepts presented below in the comments section, should you have any questions or comments regarding this indicator. When my indicators achieve more prevalent use by TV members, I may implement more ideas when they present themselves as worthy additions. As always, "Like" it if you simply just like it with a proper thumbs up, and also return to my scripts list occasionally for additional postings. Have a profitable future everyone!
Stochastic RSI DivergencesAdapted from TradingView's RSI Divergences to instead use Stochastic RSI as the oscillator.
Hancock - PVO PlusEstimates the buy and sell volume of each candle by using a configurable lower time-frame and creates a momentum oscillator for buy and sell volume, PVO.
This indicator shows higher than normal volume when the silver line cross above 0 and lower than normal when below. The green and red oscillators give an indication of trend direction where the wider they are the stronger the trend.
Happy trading
Hancock
Elder's force index impulseForce Index is an oscillator. It combines volume with prices
to discover the force of bulls or bears behind every rally or decline.
It brings together three essential pieces of information the direction of price
change, its extent, and the volume during that change. It provides a practical way of
using volume for making trading decisions.
Force Index can be used in its raw form, but its signals stand out much more
clearly if we smooth it with a moving average. Using a short EMA of Force Index
helps pinpoint entry and exit points. Using a longer EMA helps confirm trends.
Efi long > 0 (bullish trend) and efi short < 0 = buy signal (green bar)
Efi long < 0 (bear trend) and efi short>0 = sell signal (red bar)
Inverse Fisher Z-Score Introduction
The inverse fisher transform or hyperbolic tangent function is a type os sigmoid function (sometime called squashing function) , those types of functions can rescale a result in a certain range and are widely used in artificial intelligence. More in depth the fisher transform can make the correlation coefficient of a time series normally distributed, in practice if you apply the fisher transform to the correlation coefficient between a time series and a linear function you will end up with an estimate of the z-score of the time series. The inverse transform however can do the contrary, it can take the z-score and transform it into a rough estimate of the correlation coefficient, if your z-score is not smooth then you will have a non-smooth estimate of the correlation coefficient, that's quite nice no ?
The Indicator
The inverse fisher transform of the z-score will produce results in a range of 1/-1, here however i will rescale in a range of 100/0 because its a standard range for oscillators in technical analysis. Values over 80 indicate an overbought market, under 20 an oversold market. The smooth option in the indicator settings will make the indicator use a linearly weighted moving average as input thus resulting in a smoother result.
The indicator with smooth option.
Conclusion
I presented a new oscillator indicator who use the inverse fisher transform of a z-score. Using the fisher transform and its inverse can give a new shape to your indicator, make sure to control the scale of your indicator before applying the fisher transform, the inverse transform should be applied to values in range of 1/-1 but you can use higher limits (2/-2,3/-3...) , however remember that higher limits will approximate an heavy side step function (square shape) . I hope you will find an use to this indicator.
Thanks for reading !
Stocks and RSI (IFR e Estocagem)A simple script that promotes a good visualization of the oscillators.
It shows a graph with two plots, one of relative strength index and one of stock, painting the red line when overbought and green when oversold.
Um script simples mas que promove uma boa visualização dos osciladores.
Mostra um gráfico com duas plotagens, uma do índice de força relativa e outra de estocagem, pintando a linha de vermelho quando está sobrecomprado e de verde quando sobrevendido.
Fast Z-ScoreIntroduction
The ability of the least squares moving average to provide a great low lag filter is something i always liked, however the least squares moving average can have other uses, one of them is using it with the z-score to provide a fast smoothing oscillator.
The Indicator
The indicator aim to provide fast and smooth results. length control the smoothness.
The calculation is inspired from my sample correlation coefficient estimation described here
Instead of using the difference between a moving average of period length/2 and a moving average of period length , we use the difference between a lsma of period length/2 and a lsma of period length , this difference is then divided by the standard deviation. All those calculations use the price smoothed by a moving average as source.
The yellow version don't divide the difference by a standard deviation, you can that it is less reactive. Both version have length = 200
Conclusion
I presented a smooth and responsive version of a z-score, the result could be used to estimate an even faster lsma by using the line rescaling technique and our indicator as correlation coefficient.
Hope you like it, feel free to modify it and share your results ! :)
Notes
I have been requested a lot of indicators lately, from mt4 translations to more complex time series analysis methods, this accumulation of work made that it is impossible for me to publish those within a short period of time, also some are really complex. I apologize in advance for the inconvenience, i will try to do my best !
BossHouse - CCI ExtendedBossHouse - CCI Extended ( An Extended version of the Original CCI ).
The commodity channel index (CCI) is an oscillator originally introduced by Donald Lambert in 1980.
Guideline
________
Lambert's trading guidelines for the CCI focused on movements above +100 and below −100 to generate buy and sell signals. Because about 70 to 80 percent of the CCI values are between +100 and −100, a buy or sell signal will be in force only 20 to 30 percent of the time. When the CCI moves above +100, a security is considered to be entering into a strong uptrend and a buy signal is given. The position should be closed when the CCI moves back below +100. When the CCI moves below −100, the security is considered to be in a strong downtrend and a sell signal is given. The position should be closed when the CCI moves back above −100.
Since Lambert's original guidelines, traders have also found the CCI valuable for identifying reversals. The CCI is a versatile indicator capable of producing a wide array of buy and sell signals.
CCI can be used to identify overbought and oversold levels. A security would be deemed oversold when the CCI dips below −100 and overbought when it exceeds +100. From oversold levels, a buy signal might be given when the CCI moves back above −100. From overbought levels, a sell signal might be given when the CCI moved back below +100.
As with most oscillators, divergences can also be applied to increase the robustness of signals. A positive divergence below −100 would increase the robustness of a signal based on a move back above −100. A negative divergence above +100 would increase the robustness of a signal based on a move back below +100.
Trend line breaks can be used to generate signals. Trend lines can be drawn connecting the peaks and troughs. From oversold levels, an advance above −100 and trend line breakout could be considered bullish. From overbought levels, a decline below +100 and a trend line break could be considered bearish.
Settings
_______
Show 0 line
Lenght
Source
Any help and suggestions will be appreciated.
Marcos Issler @ Isslerman
marcos@bosshouse.com.br
APEX - MFI / MA [v1]The Money Flow Index is a volume indicator used for measuring buying and selling pressure. This is done by analyzing both price and volume. The MFI's calculation generates a value that is then plotted as a line that moves within a range of 0-100, making it an oscillator. When the MFI rises, this indicates an increase in buying pressure. When it falls, this indicates an increase in selling pressure. The Money Flow Index can generate several signals, most notably; overbought and oversold conditions and divergences.
You are also able to add addition smoothing and or a moving average on top of the MFI. This can help you trade only areas with increasing buying pressure.
Bitfinex Sentiment Index [Long-Short]BSI provides two attractive graphs that breakdown the long (green area) and short (red area) positions ratio for the all Bitfinex margin cryptocurrency pairs only .
It is a quantitative measure of the bullishness or bearishness that can be used as a trading rule or in a trading system entries or exits. Included slow stochastic oscillator.
Ehlers Cycle StrategyThis uses Ehlers methods to create a cycle trading strategy.
It finds the dominant cycle in the market, then creates filters out noise to create an oscillator. It then creates a trigger line using momentum to predict a reversal in price. Finally, Ehlers Empirical Mode Discriminator is used to evaluate trends and eliminate trading against the trend.
Shout out to HPotter, Everget, and LazyBear for implementing many of Ehlers indicators, which I sampled to create this indicator and strategy.
Falling Knives Jagged SpikesThe purpose of this script is to trade with the trend, trade trend continuation, and counter-trend trades.
Uptrend is price above 200 ema: Background is green and the bar colors are normal
Downtrend is price below 200 ema: Background is red and the bar colors are normal
Counter-trend to uptrend--Bar colors are white and the background is purple
counter-trend to downtrend--Bar colors are black and the background is aqua.
How to use:
Uptrend (green background): Only go long
Downtrend (red background): only go short
Counter-trend to uptrend/downtrend (white bars/black bars): Take counter-trend trade when price is a substantial distance from the 200 EMA. Best if there was a divergence with an oscillator. A lot of times these are just deep pullbacks or rallies.
trend continuation: In uptrend, after falling knives, and trend continues up (background turns to green) look to buy, you are getting a great price on the asset. Same for downtrend.
Keep in mind that nothing is perfect, and to of-course test everything.
Best of luck in all you do. Get money.
SMA Accumulative DifferenceThis script uses the 7, 25, and 99 SMA's just as Binance does, but take the difference/divergence between price and these SMA's and then sums them over a definable length, to show the size of the positive and negative bubbles forming, to give indication to oversold and overbought conditions and the relative size of these conditions and the relative size of the correction to follow. Effectively its an oscillator. I have not made a Strategy out of it yet as I don't know how to do that on this system yet, and the indicator is still in its experimental stage, so use it at your own risk and discretion.
PPO Divergence Alerts 2.0This is basically the same code as my other PPO Divergence indicator expect it overlays the signal on the candles, rather than needing the oscillator. I'm keeping the old version, as I'm sure people will prefer it, but this version takes up less screen real estate.
Godmode 3.1.4 - SNOW_CITY SCALPER EDITION - 7/2017 Updates to xSilas Godmode Oscillator published December 19th, 2014
Thanks to LEGION, LAZYBEAR, Ni6HTH4wK, xSilas
Updates:
Changed default sources to include BITSTAMP and REMOVED BTC-e
Changed default lengths for SCALPING SUPREMACY - See Instructions
Changed "Caution dots" to RED because YELLOW was hard to see.
I mostly Ignore the oscillators and only use the caution dots with this configuration:
MOST EFFECTIVE USE: BITSTAMP:BTCUSD BITSTAMP:BTCUSD
- Use on 1m charts of your BITMEX swap, yes 1m. I know, but it works better this way. 5m and 15m work best when using on an exchange index.
- IF overall 2H trend is DOWN, the 1m godmode on swap CAUTION DOTS appear on the UPPER BOUNDS means good SHORT entry points, and the lower dots suggest a possible reversal and good exit opportunity (not always)
- If overall 2H trend is UP, the 1m godmode on swap CAUTION DOTS appear on the LOWER BOUNDS means good LONG entry points, and upper dots suggest possible oversold if they start to round over, again not always.
This is ultra simple, and very effective.
Default settings for VERY sensitive CAUTION DOT blop: 17,6,4
Use these settings for a slightly less sensitive CAUTION DOT blop: 14,12,9
Dimbeta Moving Average OscillatorOscillator based on the research done here: www.sciencedirect.com
Just like most oscillators buy when Signal line (Dimbeta/Yellow) crosses over base circle line (Dimbeta MA/White).
This is the base for a trading system that I will be posting soon.
BTC/Dominance RSI by Sajad BagheriTitle: "BTC/Dominance RSI by Sajad Bagheri"
Description: "Combines BTC Price RSI (Red) and BTC Dominance RSI (Green) to detect trend conflicts and overbought/oversold conditions."
Category: Oscillators
Tags: #BTC, #Dominance, #RSI, #Bitcoin
Access: Public/Private
Information Theory Market AnalysisINFORMATION THEORY MARKET ANALYSIS
OVERVIEW
This indicator applies mathematical concepts from information theory to analyze market behavior, measuring the randomness and predictability of price and volume movements through entropy calculations. Unlike traditional technical indicators, it provides insight into market structure and regime changes.
KEY COMPONENTS
Four Main Signals:
• Price Entropy (Deep Blue): Measures randomness in price movements
• Volume Entropy (Bright Blue): Analyzes volume pattern predictability
• Entropy MACD (Purple): Shows relationship between price and volume entropy
• SEMM (Royal Blue): Stochastic Entropy Market Monitor - overall market randomness gauge
Market State Detection:
The indicator identifies seven distinct market states:
• Strong Trending (SEMM < 0.1)
• Weak Trending (0.1-0.2)
• Neutral (0.2-0.3)
• Moderate Random (0.3-0.5)
• High Randomness (0.5-0.8)
• Very Random (0.8-1.0)
• Chaotic (>1.0)
KEY FEATURES
Advanced Analytics:
• Signal Strength Confluence: 0-5 scale measuring alignment of multiple factors
• Entropy Crossovers: Detects shifts between accumulation and distribution phases
• Extreme Readings: Identifies statistical outliers for potential reversals
• Trend Bias Analysis: Directional momentum assessment
Information Dashboard:
• Real-time entropy values and market state
• Signal strength indicator with visual highlighting
• Trend bias with directional arrows
• Color-coded alerts for extreme conditions
Customizable Display:
• Adjustable SEMM scaling (5x to 100x) for optimal visibility
• Multiple line styles: Smooth, Stepped, Dotted
• 9 table positions with 3 size options
• Professional blue color scheme with transparency controls
Comprehensive Alert System - 15 Alert Types Including:
• Extreme entropy readings (price/volume)
• Crossover signals (dominance shifts)
• Market state changes (trending ↔ random)
• High confluence signals (3+ factors aligned)
HOW TO USE
Reading the Signals:
• Entropy Values > ±25: Strong structural signals
• Entropy Values > ±40: Extreme readings, potential reversals
• SEMM < 0.2: Trending market favors directional strategies
• SEMM > 0.5: Random market favors range/scalping strategies
Signal Confluence:
Look for multiple factors aligning:
• Signal Strength ≥ 3.0 for higher probability setups
• Background highlighting indicates confluence
• Table shows real-time strength assessment
Timeframe Optimization:
• Short-term (1m-15m): Entropy Length 14-22, Sensitivity 3-5
• Swing Trading (1H-4H): Default settings optimal
• Position Trading (Daily+): Entropy Length 34-55, Sensitivity 8-12
EDUCATIONAL APPLICATIONS
Market Structure Analysis:
• Understand when markets are trending vs. ranging
• Identify accumulation and distribution phases
• Recognize extreme market conditions
• Measure information content in price movements
Information Theory Concepts:
• Binary entropy calculations applied to financial data
• Probability distribution analysis of returns
• Statistical ranking and percentile analysis
• Momentum-adjusted randomness measurement
TECHNICAL DETAILS
Calculations:
• Uses binary entropy formula: -
• Percentile ranking across multiple timeframes
• Volume-weighted probability distributions
• RSI-adjusted momentum entropy (SEMM)
Customization Options:
• Entropy Length: 5-100 bars (default: 22)
• Average Length: 10-200 bars (default: 88)
• Sensitivity: 1.0-20.0 (default: 5.0, lower = more sensitive)
• SEMM Scaling: 5.0-100.0x (default: 30.0)
IMPORTANT NOTES
Risk Considerations:
• Indicator measures probabilities, not certainties
• High SEMM values (>0.5) suggest increased market randomness
• Extreme readings may persist longer than expected
• Always combine with proper risk management
Educational Purpose:
This indicator is designed for:
• Market structure analysis and education
• Understanding information theory applications in finance
• Developing probabilistic thinking about markets
• Research and analytical purposes
Performance Tips:
• Allow 200+ bars for proper initialization
• Adjust scaling and transparency for optimal visibility
• Use confluence signals for higher probability analysis
• Consider multiple timeframes for comprehensive analysis
DISCLAIMER
This indicator is for educational and analytical purposes. It does not constitute financial advice. Past performance does not guarantee future results. Always conduct your own research and consider your risk tolerance before making trading decisions.
Version: 5.0
Category: Oscillators, Volume, Market Structure
Best For: All timeframes, trending and ranging markets
Complexity: Intermediate to Advanced
Hidden Markov ModelOverview
This model uses a Hidden Markov Model to identify and predict market regimes in real-time. It is designed to probabilistically identify market regime changes and predict potential reversal point using a forward algorithm to calculate the probability of a state.
Unlike traditional technical indicators that rely on price patterns or moving averages, this HMM analyses the underlying statistical structure of market movements to detect when the market transitions between different behavioural states such as trending, ranging, or volatile periods
How it works
The HMM assumes that market behavior follows hidden states that aren't directly observable, but can be inferred from observable market data (emissions). The model uses a (somewhat simplified) Bayesian inference to estimate these probabilities.
State 0: (Normal Trading): Market continuation patterns, balanced buying/selling
State 1: (Top Formation): Exhaustion patterns at price highs
State 2: (Bottom Formation): Capitulation patterns at price lows
How to use
1) Identify the trend (you can also use it counter-trend)
2) For longing, look for a green arrow. The probability values should be red. For shorting, look for a red arrow. The probability values should be green
3) For added confluence, look for high probability values of above 25%.
Advantages and what makes it unique
Unlike moving averages or oscillators that react to price changes, the HMM proactively identifies the underlying market structure. This forward-looking approach can signal regime changes before they become apparent in price action, providing traders with an informational edge.
Demand Index (Hybrid Sibbet) by TradeQUODemand Index (Hybrid Sibbet) by TradeQUO \
\Overview\
The Demand Index (DI) was introduced by James Sibbet in the early 1990s to gauge “real” buying versus selling pressure by combining price‐change information with volume intensity. Unlike pure price‐based oscillators (e.g. RSI or MACD), the DI highlights moves backed by above‐average volume—helping traders distinguish genuine demand/supply from false breakouts or low‐liquidity noise.
\Calculation\
\
\ \Step 1: Weighted Price (P)\
For each bar t, compute a weighted price:
```
Pₜ = Hₜ + Lₜ + 2·Cₜ
```
where Hₜ=High, Lₜ=Low, Cₜ=Close of bar t.
Also compute Pₜ₋₁ for the prior bar.
\ \Step 2: Raw Range (R)\
Calculate the two‐bar range:
```
Rₜ = max(Hₜ, Hₜ₋₁) – min(Lₜ, Lₜ₋₁)
```
This Rₜ is used indirectly in the exponential dampener below.
\ \Step 3: Normalize Volume (VolNorm)\
Compute an EMA of volume over n₁ bars (e.g. n₁=13):
```
EMA_Volₜ = EMA(Volume, n₁)ₜ
```
Then
```
VolNormₜ = Volumeₜ / EMA_Volₜ
```
If EMA\_Volₜ ≈ 0, set VolNormₜ to a small default (e.g. 0.0001) to avoid division‐by‐zero.
\ \Step 4: BuyPower vs. SellPower\
Calculate “raw” BuyPowerₜ and SellPowerₜ depending on whether Pₜ > Pₜ₋₁ (bullish) or Pₜ < Pₜ₋₁ (bearish). Use an exponential dampener factor Dₜ to moderate extreme moves when true range is small. Specifically:
• If Pₜ > Pₜ₋₁,
```
BuyPowerₜ = (VolNormₜ) / exp
```
otherwise
```
BuyPowerₜ = VolNormₜ.
```
• If Pₜ < Pₜ₋₁,
```
SellPowerₜ = (VolNormₜ) / exp
```
otherwise
```
SellPowerₜ = VolNormₜ.
```
Here, H₀ and L₀ are the very first bar’s High/Low—used to calibrate the scale of the dampening. If the denominator of the exponential is near zero, substitute a small epsilon (e.g. 1e-10).
\ \Step 5: Smooth Buy/Sell Power\
Apply a short EMA (n₂ bars, typically n₂=2) to each:
```
EMA_Buyₜ = EMA(BuyPower, n₂)ₜ
EMA_Sellₜ = EMA(SellPower, n₂)ₜ
```
\ \Step 6: Raw Demand Index (DI\_raw)\
```
DI_rawₜ = EMA_Buyₜ – EMA_Sellₜ
```
A positive DI\_raw indicates that buying force (normalized by volume) exceeds selling force; a negative value indicates the opposite.
\ \Step 7: Optional EMA Smoothing on DI (DI)\
To reduce choppiness, compute an EMA over DI\_raw (n₃ bars, e.g. n₃ = 1–5):
```
DIₜ = EMA(DI_raw, n₃)ₜ.
```
If n₃ = 1, DI = DI\_raw (no further smoothing).
\
\Interpretation\
\
\ \Crossing Zero Line\
• DI\_raw (or DI) crossing from below to above zero signals that cumulative buying pressure (over the chosen smoothing window) has overcome selling pressure—potential Long signal.
• Crossing from above to below zero signals dominant selling pressure—potential Short signal.
\ \DI\_raw vs. DI (EMA)\
• When DI\_raw > DI (the EMA of DI\_raw), bullish momentum is accelerating.
• When DI\_raw < DI, bullish momentum is weakening (or bearish acceleration).
\ \Divergences\
• If price makes new highs while DI fails to make higher highs (DI\_raw or DI declining), this hints at weakening buying power (“bearish divergence”), possibly preceding a reversal.
• If price makes new lows while DI fails to make lower lows (“bullish divergence”), this may signal waning selling pressure and a potential bounce.
\ \Volume Confirmation\
• A strong price move without a corresponding rise in DI often indicates low‐volume “fake” moves.
• Conversely, a modest price move with a large DI spike suggests true institutional participation—often a more reliable breakout.
\
\Usage Notes & Warnings\
\
\ \Never Use DI in Isolation\
It is a \filter\ and \confirmation\ tool—combine with price‐action (trendlines, support/resistance, candlestick patterns) and risk management (stop‐losses) before executing trades.
\ \Parameter Selection\
• \Vol EMA length (n₁)\: Commonly 13–20 bars. Shorter → more responsive to volume spikes, but noisier.
• \Buy/Sell EMA length (n₂)\: Typically 2 bars for fast smoothing.
• \DI smoothing (n₃)\: Usually 1 (no smoothing) or 3–5 for moderate smoothing. Long DI\_EMA (e.g. 20–50) gives a slower signal.
\ \Market Adaptation\
Works well in liquid futures, indices, and heavily traded stocks. In thinly traded or highly erratic markets, adjust n₁ upward (e.g., 20–30) to reduce noise.
---
\In Summary\
The Demand Index (James Sibbet) uses a three‐stage smoothing (volume → Buy/Sell Power → DI) to reveal true demand/supply imbalance. By combining normalized volume with price change, Sibbet’s DI helps traders identify momentum backed by real participation—filtering out “empty” moves and spotting early divergences. Always confirm DI signals with price action and sound risk controls before trading.