CoffeeShopCrypto Supply Demand PPO Advanced

Original Code derived from the Price Oscillator Indicators (PPO) found in the TradingView Technical Indicators categories. You can view the info and calculation for the original PPO here
tradingview.com/support/solutions/43000502346/
Much like the MACD, the PPO uses a couple lagging indicators to present Momentum as a percentage. But it lacks context to market structure.
What It’s Based On
This tool is based on a dual-moving-average PPO oscillator structure (Percentage Price Oscillator) enhanced by:
- Oscillator pivot structure: detection of Lower Highs (LH) and Higher Lows (HL) inside the oscillator.
- Detection of Supply and Demand Trends via Market Absorption
- Ability to transfer its average plots to price action
- Detection of Trend Exhaustion
- Real-time price-based exhaustion levels: projecting potential future supply and demand using trendlines from weakening momentum.
- Integrated fast and slow Moving Averages on price using the same inputs as the oscillator, to visualize alignment between short- and long-term trends.
These elements combine momentum context with price action in a visual, intuitive system.
How It Works
1. Oscillator Structure
LHs (above zero): momentum weakening in uptrends.
HLs (below zero): momentum strengthening in downtrends.
Only valid pivots are shown (e.g., an LH must be preceded by a valid LL).
2. Exhaustion Levels
Green demand lines: price is making new lows, but oscillator prints HL → potential exhaustion.
Red supply lines: price is making new highs, but oscillator prints LH → potential exhaustion.
These lines are future-facing, projecting likely reaction zones based on momentum weakening.
3. Moving Averages on Price
Two MAs are drawn on the price chart:
Fast MA (same length as PPO short input)
Slow MA (same length as PPO long input)
These are not signal lines — they're visual guides for trend alignment.
MA crossover = PO crosses zero. This indicates short- and long-term momentum are syncing — a powerful signal of trend conviction.
When price is above both MAs, and the PO is rising above zero, bullish momentum is dominant.
When price is below both MAs, and the PO is falling below zero, bearish momentum dominates.
How Traders Can Use It
✅ Spot Trend Initiation
Wait for clear trend confirmation in price.
Use PPO Momentum+ to confirm momentum structure is aligned (e.g., HH/HL in oscillator + price above both MAs).
🔁 Track Continuations
In uptrends, look for oscillator HH and HL sequences with price holding above both MAs.
In downtrends, seek LL and LH sequences with price below both MAs.
⚠️ Watch for Exhaustion
Price breaking below red (supply) lines after oscillator LH = bearish exhaustion signal.
Price breaking above green (demand) lines after oscillator HL = bullish exhaustion signal.
These levels act like pre-mapped S/R zones, showing where momentum previously failed and price may react.
Why This Is Different
Momentum tools often lag or mislead when used blindly. This tool visualizes structural failure in momentum and maps potential outcomes. The integration of oscillator and price-based tools ensures traders are always reading context, not just raw signals.
Demand Trendlines
Demand trendlines show us Wykoff's law of "Absorbed Supply Reversal" In real time.
When aggressive selling pressure is persistently absorbed by passive buying interest without significant downward price continuation, and supply becomes exhausted, the market structure shifts as demand regains control—resulting in a directional reversal to the upside.
This commonly happens in a 3 phase interaction of price.
1. Selling pressure is absorbed quickly by buyers.
This PPO tool will calculate the trend of this absorption process
2. After there is a notable Bearish Exhaustion of price action, the PPO tool will draw a trendline of this absorption showing us the potential future prices where aggressive buyers will want to step in at lower prices.
3. After higher lows are defined in the oscillator, you'll see prices react in a strong bullish pattern at this trendline where aggressive buyers stepped in to reverse price action to the upside.
Supply Trendlines
Supply trendlines show us Wykoff's law of "Absorbed Demand Reversal" In real time.
When aggressive buying pressure is persistently absorbed by passive selling interest without significant downward price continuation, and demand becomes exhausted, the market structure shifts as supply regains control—resulting in a directional reversal to the downside.
This commonly happens in a 3 phase interaction of price.
1. Buying pressure is absorbed quickly by sellers.
This PPO tool will calculate the trend of this absorption process.
2. After there is a notable Bullish Exhaustion of price action, the PPO tool will draw a trendline of this absorption showing us the potential future prices where aggressive sellers will want to step in at higher prices.
3. After lower highs are defined in the oscillator, you'll see prices react in a strong bearish pattern at this trendline where aggressive sellers stepped in to reverse price action to the downside.
Lower High and Higher Low Signals
When the oscillator signals Lower Highs or High Lows its only noting that momentum in that trend direction is slowing. THis indicates a coming pause in the market and the proceeding longs of an uptrend or shorts of a downtrend should be taken with caution.
**These LH and HL markers are not reading as divergences in price vs momentum.**
They are simply registering against the highs and lows of itself..
Moving Averages on Price Action
The Oscillator will cross over its ZERO level the same time your Short and Long MAs cross each other. This will indicate that the short term average trend is moving ahead of the long term.
Crossovers are not an entry signal. It's a method in determining you current timeframe trend strength. Always observe price action as it passes through each of your moving averages and compare it to the positioning and direction of the oscillator.
If price dips in between the moving averages while the oscillator still shows a strong trend strength, you can wait for price to move ahead of your fast moving average.
Bar Colors and Signal Line for Trend Strength
Good Bullish Trend = Oscillator above zero + Signal rising below Oscillator
Weak Bullish Trend = Oscillator above zero + Signal above Oscillator
Good Bearish Trend = Oscillator below zero + Signal falling above Oscillator
Weak Bearish Trend = Oscillator below zero + Signal below Oscillator
Bar Colors
Bars are colored to match Oscillator Momentum Strength. Colors are set by user.
Why alter the known PPO (Percentage Price Oscillator) in this manner?
The PPO tool is great for measuring the strength as percentage of price action over and average amount of candles however, with these changes,
you know have the ability to correlate:
Wycoff theory of supply and demand,
Measure the depth of reversals and pullback by price positioning against moving averages,
Project potential reversal and exhaustion pricing,
Visibly note the structure of momentum much like you would note market structure,
Its not enough to know there is momentum. Its better to know
A) Is it enough
B) Is there something in the way which will cause price to push back
C) Does this momentum correlate to the prevailing trend
Script open-source
In pieno spirito TradingView, il creatore di questo script lo ha reso open-source, in modo che i trader possano esaminarlo e verificarne la funzionalità. Complimenti all'autore! Sebbene sia possibile utilizzarlo gratuitamente, ricorda che la ripubblicazione del codice è soggetta al nostro Regolamento.
Per un accesso rapido a un grafico, aggiungi questo script ai tuoi preferiti: per saperne di più clicca qui.
Discord = discord.gg/DmSbuAuAFr
Declinazione di responsabilità
Script open-source
In pieno spirito TradingView, il creatore di questo script lo ha reso open-source, in modo che i trader possano esaminarlo e verificarne la funzionalità. Complimenti all'autore! Sebbene sia possibile utilizzarlo gratuitamente, ricorda che la ripubblicazione del codice è soggetta al nostro Regolamento.
Per un accesso rapido a un grafico, aggiungi questo script ai tuoi preferiti: per saperne di più clicca qui.
Discord = discord.gg/DmSbuAuAFr