qEMA 3 LineMy scenario consists of 3 ema lines which are ema 34, ema89, ema 144.
3 ema lines are important in elliott waves:
- A complete elliott wave of 144 waves
- An eliott wave has 89 waves
- In wave with wave, in wave 89 again wave 34 waves
I used to find the waves in elliott, know where the cycle elliott will end up (when the price hit ema144)
Cari dalam skrip untuk "wave"
SulLaLuna — HTF M2 x Ultimate BB (Fusion) 🌕 **SulLaLuna — HTF M2 x Ultimate BB (Fusion)** 🚀💵
**By SulLaLuna Trading**
(Portions of the Bollinger Band logic adapted with permission/credit from the *Ultimate Buy & Sell Indicator* by its original author — thank you for the brilliance!)
---
🧭 **What This Is**
This is not just another price-following tool.
This is **a macro liquidity detector** — a **Daily Higher Timeframe Hull Moving Average of the Global M2 Money Supply**, smoothed via lower timeframe candles (default 5m, 48 Hull length), overlaid with **Ultimate-style double Bollinger Bands** to reveal *over-extension & mean reversion zones*.
It doesn’t chase candles.
It watches the tides beneath the market — the **money supply currents** that have a **direct correlation** to asset price behavior.
When liquidity expands → risk-on assets tend to rise.
When liquidity contracts → risk-off waves hit.
We ride those waves.
---
🔍 **What It Does**
* **Tracks Global M2** across major economies, FX-adjusted, and scales it to your chart’s price.
* **HTF Hull MA** (Daily, smoothed via 5m base) → gives you the macro liquidity trend.
* **Ultimate BB logic** applied to the HTF M2 Hull → inner/outer bands for volatility envelopes.
* **Pivot Labels** → ideal entry/exit zones on macro turns.
* **Over-Extension Alerts** → when HTF M2 Hull pushes outside the outer bands.
* **Re-Entry Alerts** → mean reversion triggers when liquidity moves back inside the range.
* **Background Paint** from chart TF M2 slope → for confluence on your entry timeframe.
---
📜 **Suggested How-To**
1. **Choose your execution chart** — e.g., 1–15m for scalps, 1H–4H for swings.
2. **Use the background paint** as your *local tide check* (chart TF M2 slope).
3. **Trade in the direction of the HTF M2 Hull** — green line = liquidity rising, red line = liquidity falling.
4. **Watch pivot labels** — these are potential “macro inflection” points.
5. **Confluence stack** — pair with ZLSMA, WaveTrend divergences, VWAP volume, or your favorite price-action setups.
6. **Size down** when HTF M2 Hull is flat/gray (chop zone).
7. **Scale in/out** on over-extension + re-entry alerts for higher probability swings.
---
⚠️ **Important Note**
This indicator **does not predict price** — it tracks macro liquidity flows that *influence* price.
Think of it as your market’s **tide chart**: when the water’s coming in, you can swim out; when it’s going out, you’d better be ready for the undertow.
---
📢 **Alerts Available**
* HTF Pivot HIGH / LOW
* Over-Extension (HTF Hull outside outer BB)
* Re-Entry (return from overbought/oversold)
---
🤝 **Join the SulLaLuna Tribe**
If this indicator helps you capture better entries, follow & share so more traders can learn to trade *math, not emotion*.
We rise together — **and we’ll meet you on the Moon** 🌕🚀💵.
Green*DiamondGreen*Diamond (GD1)
Unleash Dynamic Trading Signals with Volatility and Momentum
Overview
GreenDiamond is a versatile overlay indicator designed for traders seeking actionable buy and sell signals across various markets and timeframes. Combining Volatility Bands (VB) bands, Consolidation Detection, MACD, RSI, and a unique Ribbon Wave, it highlights high-probability setups while filtering out noise. With customizable signals like Green-Yellow Buy, Pullback Sell, and Inverse Pullback Buy, plus vibrant candle and volume visuals, GreenDiamond adapts to your trading style—whether you’re scalping, day trading, or swing trading.
Key Features
Volatility Bands (VB): Plots dynamic upper and lower bands to identify breakouts or reversals, with toggleable buy/sell signals outside consolidation zones.
Consolidation Detection: Marks low-range periods to avoid choppy markets, ensuring signals fire during trending conditions.
MACD Signals: Offers flexible buy/sell conditions (e.g., cross above signal, above zero, histogram up) with RSI divergence integration for precision.
RSI Filter: Enhances signals with customizable levels (midline, oversold/overbought) and bullish divergence detection.
Ribbon Wave: Visualizes trend strength using three EMAs, colored by MACD and RSI for intuitive momentum cues.
Custom Signals: Includes Green-Yellow Buy, Pullback Sell, and Inverse Pullback Buy, with limits on consecutive signals to prevent overtrading.
Candle & Volume Styling: Blends MACD/RSI colors on candles and scales volume bars to highlight momentum spikes.
Alerts: Set up alerts for VB signals, MACD crosses, Green*Diamond signals, and custom conditions to stay on top of opportunities.
How It Works
Green*Diamond integrates multiple indicators to generate signals:
Volatility Bands: Calculates bands using a pivot SMA and standard deviation. Buy signals trigger on crossovers above the lower band, sell signals on crossunders below the upper band (if enabled).
Consolidation Filter: Suppresses signals when candle ranges are below a threshold, keeping you out of flat markets.
MACD & RSI: Combines MACD conditions (e.g., cross above signal) with RSI filters (e.g., above midline) and optional volume spikes for robust signals.
Custom Logic: Green-Yellow Buy uses MACD bullishness, Pullback Sell targets retracements, and Inverse Pullback Buy catches reversals after downmoves—all filtered to avoid consolidation.
Visuals: Ribbon Wave shows trend direction, candles blend momentum colors, and volume bars scale dynamically to confirm signals.
Settings
Volatility Bands Settings:
VB Lookback Period (20): Adjust to 10–15 for faster markets (e.g., 1-minute scalping) or 25–30 for daily charts.
Upper/Lower Band Multiplier (1.0): Increase to 1.5–2.0 for wider bands in volatile stocks like AEHL; decrease to 0.5 for calmer markets.
Show Volatility Bands: Toggle off to reduce chart clutter.
Use VB Signals: Enable for breakout-focused trades; disable to focus on Green*Diamond signals.
Consolidation Settings:
Consolidation Lookback (14): Set to 5–10 for small caps (e.g., AEHL) to catch quick consolidations; 20 for higher timeframes.
Range Threshold (0.5): Lower to 0.3 for stricter filtering in choppy markets; raise to 0.7 for looser signals.
MACD Settings:
Fast/Slow Length (12/26): Shorten to 8/21 for scalping; extend to 15/34 for swing trading.
Signal Smoothing (9): Reduce to 5 for faster signals; increase to 12 for smoother trends.
Buy/Sell Signal Options: Choose “Cross Above Signal” for classic MACD; “Histogram Up” for momentum plays.
Use RSI Div + MACD Cross: Enable for high-probability reversal signals.
RSI Settings:
RSI Period (14): Drop to 10 for 1-minute charts; raise to 20 for daily.
Filter Level (50): Set to 55 for stricter buys; 45 for sells.
Overbought/Oversold (70/30): Tighten to 65/35 for small caps; widen to 75/25 for indices.
RSI Buy/Sell Options: Select “Bullish Divergence” for reversals; “Cross Above Oversold” for momentum.
Color Settings:
Adjust bullish/bearish colors for visibility (e.g., brighter green/red for dark themes).
Border Thickness (1): Increase to 2–3 for clearer candle outlines.
Volume Settings:
Volume Average Length (20): Shorten to 10 for scalping; extend to 30 for swing trades.
Volume Multiplier (2.0): Raise to 3.0 for AEHL’s volume surges; lower to 1.5 for steady stocks.
Bar Height (10%): Increase to 15% for prominent bars; decrease to 5% to reduce clutter.
Ribbon Settings:
EMA Periods (10/20/30): Tighten to 5/10/15 for scalping; widen to 20/40/60 for trends.
Color by MACD/RSI: Disable for simpler visuals; enable for dynamic momentum cues.
Gradient Fill: Toggle on for trend clarity; off for minimalism.
Custom Signals:
Enable Green-Yellow Buy: Use for momentum confirmation; limit to 1–2 signals to avoid spam.
Pullback/Inverse Pullback % (50): Set to 30–40% for small caps; 60–70% for indices.
Max Buy Signals (1): Increase to 2–3 for active markets; keep at 1 for discipline.
Tips and Tricks
Scalping Small Caps (e.g., AEHL):
Use 1-minute charts with VB Lookback = 10, Consolidation Lookback = 5, and Volume Multiplier = 3.0 to catch $0.10–$0.20 moves.
Enable Green-Yellow Buy and Inverse Pullback Buy for quick entries; disable VB Signals to focus on Green*Diamond logic.
Pair with SMC+ green boxes (if you use them) for reversal confirmation.
Day Trading:
Try 5-minute charts with MACD Fast/Slow = 8/21 and RSI Period = 10.
Enable RSI Divergence + MACD Cross for high-probability setups; set Max Buy Signals = 2.
Watch for volume bars turning yellow to confirm entries.
Swing Trading:
Use daily charts with VB Lookback = 30, Ribbon EMAs = 20/40/60.
Enable Pullback Sell (60%) to exit after rallies; disable RSI Color for cleaner candles.
Check Ribbon Wave gradient for trend strength—bright green signals strong bulls.
Avoiding Noise:
Increase Consolidation Threshold to 0.7 on volatile days to skip false breakouts.
Disable Ribbon Wave or Volume Bars if the chart feels crowded.
Limit Max Buy Signals to 1 for disciplined trading.
Alert Setup:
In TradingView’s Alerts panel, select:
“GD Buy Signal” for standard entries.
“RSI Div + MACD Cross Buy” for reversals.
“VB Buy Signal” for breakout plays.
Set to “Once Per Bar Close” for confirmed signals; “Once Per Bar” for scalping.
Backtesting:
Replay on small caps ( Float < 5M, Price $0.50–$5) to test signals.
Focus on “GD Buy Signal” with yellow volume bars and green Ribbon Wave.
Avoid signals during gray consolidation squares unless paired with RSI Divergence.
Usage Notes
Markets: Works on stocks, forex, crypto, and indices. Best for volatile assets (e.g., small-cap stocks, BTCUSD).
Timeframes: Scalping (1–5 minutes), day trading (15–60 minutes), or swing trading (daily). Adjust settings per timeframe.
Risk Management: Combine with stop-losses (e.g., 1% risk, $0.05 below AEHL entry) and take-profits (3–5%).
Customization: Tweak inputs to match your strategy—experiment in replay to find your sweet spot.
Disclaimer
Green*Diamond is a technical tool to assist with trade identification, not a guarantee of profits. Trading involves risks, and past performance doesn’t predict future results. Always conduct your own analysis, manage risk, and test settings before live trading.
Feedback
Love Green*Diamond? Found a killer setup?
Long Term Profitable Swing | AbbasA Story of a Profitable Swing Trading Strategy
Imagine you're sailing across the ocean, looking for the perfect wave to ride. Swing trading is quite similar—you're navigating the stock market, searching for the ideal moments to enter and exit trades. This strategy, created by Abbas, helps you find those waves and ride them effectively to profitable outcomes.
🌊 Finding the Perfect Wave (Entry)
Our journey begins with two simple signs that tell us a great trading opportunity is forming:
- Moving Averages: We use two lines that follow price trends—the faster one (EMA 16) reacts quickly to recent price moves, and the slower one (EMA 30) gives us a longer-term perspective. When the faster line crosses above the slower line, it's like a clear signal saying, "Hey! The wave is rising, and prices might move higher!"
- RSI Momentum: Next, we check a tool called the RSI, which measures momentum (how strongly prices are moving). If the RSI number is above 50, it means there's enough strength behind this rising wave to carry us forward.
When both signals appear together, that's our green light. It's time to jump on our surfboard and start riding this promising wave.
⚓ Safely Riding the Wave (Risk Management)
While we're riding this wave, we want to ensure we're safe from sudden surprises. To do this, we use something called the Average True Range (ATR), which measures how volatile (or bumpy) the price movements are:
- Stop-Loss: To avoid falling too hard, we set a safety line (stop-loss) 8 times the ATR below our entry price. This helps ensure we exit if the wave suddenly turns against us, protecting us from heavy losses.
- Take Profit: We also set a goal to exit the trade at 11 times the ATR above our entry. This way, we capture significant profits when the wave reaches a nice high point.
🌟 Multiple Rides, Bigger Adventures
This strategy allows us to take multiple positions simultaneously—like riding several waves at once, up to 5. Each trade we make uses only 10% of our trading capital, keeping risks manageable and giving us multiple opportunities to win big.
🗺️ Easy to Follow Settings
Here are the basic settings we use:
- Fast EMA**: 16
- Slow EMA**: 30
- RSI Length**: 9
- RSI Threshold**: 50
- ATR Length**: 21
- ATR Stop-Loss Multiplier**: 8
- ATR Take-Profit Multiplier**: 11
These settings are flexible—you can adjust them to better suit different markets or your personal trading style.
🎉 Riding the Waves of Success
This simple yet powerful swing trading approach helps you confidently enter trades, clearly know when to exit, and effectively manage your risk. It’s a reliable way to ride market waves, capture profits, and minimize losses.
Happy trading, and may you find many profitable waves to ride! 🌊✨
Please test, and take into account that it depends on taking multiple longs within the swing, and you only get to invest 25/30% of your equity.
Multi-Timeframe Recursive Zigzag [Trendoscope®]🎲 Welcome to the Advanced World of Zigzag Analysis
Embark on a journey through the most comprehensive and feature-rich Zigzag implementation you’ll ever encounter. Our Multi-Timeframe Recursive Zigzag Indicator is not just another tool; it's a groundbreaking advancement in technical analysis.
🎯 Key Features
Multi Time-Frame Support - One of the rare open-source Zigzag indicators with robust multi-timeframe capabilities, this feature sets our tool apart, enabling a broader and more dynamic market analysis.
Innovative Recursive Zigzag Algorithm - At its core is our unique Recursive Zigzag Algorithm, a pioneering development that powers multiple Zigzag levels, offering an intricate view of market movements. This proprietary algorithm is the backbone of our advanced pattern recognition indicators.
Sub-Waves and Micro-Waves Analysis - Dive deeper into market trends with our Sub-Waves and Micro-Waves feature. Sub-Waves reveal the interconnectedness of various Zigzag levels, while Micro-Waves offer insight into the fundamental waves at the base level.
Enhanced Indicator Tracking - Integrate and track your custom indicators or oscillators with the zigzag, capturing their values at each Zigzag level, complete with retracement ratios. This offers a comprehensive view of market dynamics.
Curved Zigzag Visualization - Experience a new way of visualizing market movements with our Curved Zigzag Display, employing Pine Script’s polyline feature for a more intuitive and visually appealing representation.
Built-in Customizable Alerts - Stay ahead with built-in alerts that can be customized via user input settings.
🎯 Practical Applications
Our Zigzag Indicator is designed with an understanding of its inherent nature - the last unconfirmed pivot that consistently repaints. This characteristic, while by design, directs its usage more towards pattern recognition rather than direct identification of market tops and bottoms. Here's how you can leverage the Zigzag Indicator:
Harmonic Patterns - Ideal for those familiar with harmonic patterns, this tool simplifies the manual spotting of complex XABCD, ABC, and ABCD patterns on charts.
Chart Patterns - Effortlessly identify patterns like Double/Triple Taps, Head and Shoulders, Inverse Head and Shoulders, and Cup and Handle patterns with enhanced clarity. Navigate through challenging patterns such as Triangles, Wedges, Flags, and Price Channels, where the Zigzag Indicator adds a layer of precision to your breakout strategy.
Elliott Wave Components - The indicator's detailed pivot highlighting aids in identifying key Elliott Wave components, enhancing your wave analysis and decision-making process.
🎲 Deep Dive into Indicator Features
Join us as we explore the intricate features of our indicator in more detail.
🎯 Multi-Timeframe Capability
Our indicator comes equipped with an input option for selecting the desired resolution. This unique feature allows users to view higher timeframe Zigzag patterns directly on their lower timeframe charts.
🎯 Recursive Multi Level Zigzag
Our advanced recursive approach creates multi-level Zigzags from lower-level data. For instance, the level 0 Zigzag forms the base, calculated from specified length and depth parameters, while level 1 Zigzag is derived using level 0 as its foundation, and so forth.
The indicator not only displays multiple Zigzag levels but also offers settings to emphasize specific levels for more detailed analysis.
🎯 Sub-Components and Micro-Components of Zigzag Wave
Sub-components within a Zigzag wave consist of the previous level's Zigzag pivots. Meanwhile, the micro-components are composed of the base level (Level 0) Zigzag pivots encapsulated within the wave.
🎯 Curved Zigzag
Experience a new perspective with our curved Zigzag display. This innovative feature utilizes the polyline curved option to automatically generate sinusoidal waves based on multiple points.
🎯 Indicator Tracking
Default indicators such as RSI, MFI, and OBV are included, alongside the ability to track one external indicator at each Zigzag pivot.
🎯 Customizable Alerts
Our indicator employs the `alert()` function for alert creation. While this means the absence of a customization text box in the alert settings, we've included a custom text area for users to create their own alert templates.
Template placeholders include:
{alertType} - type of alert. Either Confirmed Pivot Update or Last Pivot Update. Depends on the alert type selected in the inputs.
When Last Pivot Update type is selected, the alerts are triggered whenever there is a new Zigzag Pivot. This may also be a repaint of last unconfirmed pivot.
When Confirmed Pivot Update type is selected, the alerts are triggered only when a pivot becomes a confirmed pivot.
{level} - Zigzag level on which the alert is triggered.
{pivot} - Details of the last pivot or confirmed pivot including price, ratio, indicator values and ratios, subcomponent and micro-component pivots.
🎲 User Settings Overview
🎯 Zigzag and Generic Settings
This involves some generic zigzag calculation settings such as length, depth, and timeframe. And few display options such as theme, Highlight Level and Curved Zigzag. By default, zigzag calculation is done based on the latest real time bar. An option is provided to disable this and use only confirmed bars for the calculation.
Indicator Settings
Allows users to track one or more oscillators or volume indicators. Option to add any indicator via external input is provided.
🎯 Alert Settings
Has input fields required to select and customize alerts.
Fibonacci + Support/Resistant + Trendline (Price action)This is opening source code version: Fibonacci + Support/Resistant + Trendline (One of Advanced Price action Analysis).
How it works:
It find entry Long/Short by combining: Fibonacci + Support/Resistant + Trendline
1. Find Impulse wave:
To findind Impulse wave, It uses Pivot High/Low to find Impulse wave. In case find entry Long, If having Pivot High higher Pivot High before, it will draw an Impulse wave.
2. Find entry at Fibonacci levels:
Draw Fibonacci fibonacci retracement from Pivot Low to Pivot High. A Fibonacci retracement forecast is created by taking two extreme points on a chart and dividing the vertical distance by important Fibonacci ratios. 0% is considered to be the start of the retracement, while 100% is a complete reversal to the original price before the move. Horizontal lines are drawn in the chart for these price levels to provide support and resistance levels. Common levels are 23.6%, 38.2%, 50%, and 61.8%
3. Find entry at Support/Resistant Zone:
Support/Resistant Zone drawed from Pivot High before, which price just breaken and return to retest.
4. Find entry at Trendline:
Trendline drawed from Pivot High/Low before, which price just breaken and return to retest.
How do use it:
+ You can customize the thickness of the lines.
+ You can set up an alert when the price touchs important areas.
MathConstantsAtomicLibrary "MathConstantsAtomic"
Mathematical Constants
FineStructureConstant() Fine Structure Constant: alpha = e^2/4*Pi*e_0*h_bar*c_0 (2007 CODATA)
RydbergConstant() Rydberg Constant: R_infty = alpha^2*m_e*c_0/2*h (2007 CODATA)
BohrRadius() Bor Radius: a_0 = alpha/4*Pi*R_infty (2007 CODATA)
HartreeEnergy() Hartree Energy: E_h = 2*R_infty*h*c_0 (2007 CODATA)
QuantumOfCirculation() Quantum of Circulation: h/2*m_e (2007 CODATA)
FermiCouplingConstant() Fermi Coupling Constant: G_F/(h_bar*c_0)^3 (2007 CODATA)
WeakMixingAngle() Weak Mixin Angle: sin^2(theta_W) (2007 CODATA)
ElectronMass() Electron Mass: (2007 CODATA)
ElectronMassEnergyEquivalent() Electron Mass Energy Equivalent: (2007 CODATA)
ElectronMolarMass() Electron Molar Mass: (2007 CODATA)
ComptonWavelength() Electron Compton Wavelength: (2007 CODATA)
ClassicalElectronRadius() Classical Electron Radius: (2007 CODATA)
ThomsonCrossSection() Thomson Cross Section: (2002 CODATA)
ElectronMagneticMoment() Electron Magnetic Moment: (2007 CODATA)
ElectronGFactor() Electon G-Factor: (2007 CODATA)
MuonMass() Muon Mass: (2007 CODATA)
MuonMassEnegryEquivalent() Muon Mass Energy Equivalent: (2007 CODATA)
MuonMolarMass() Muon Molar Mass: (2007 CODATA)
MuonComptonWavelength() Muon Compton Wavelength: (2007 CODATA)
MuonMagneticMoment() Muon Magnetic Moment: (2007 CODATA)
MuonGFactor() Muon G-Factor: (2007 CODATA)
TauMass() Tau Mass: (2007 CODATA)
TauMassEnergyEquivalent() Tau Mass Energy Equivalent: (2007 CODATA)
TauMolarMass() Tau Molar Mass: (2007 CODATA)
TauComptonWavelength() Tau Compton Wavelength: (2007 CODATA)
ProtonMass() Proton Mass: (2007 CODATA)
ProtonMassEnergyEquivalent() Proton Mass Energy Equivalent: (2007 CODATA)
ProtonMolarMass() Proton Molar Mass: (2007 CODATA)
ProtonComptonWavelength() Proton Compton Wavelength: (2007 CODATA)
ProtonMagneticMoment() Proton Magnetic Moment: (2007 CODATA)
ProtonGFactor() Proton G-Factor: (2007 CODATA)
ShieldedProtonMagneticMoment() Proton Shielded Magnetic Moment: (2007 CODATA)
ProtonGyromagneticRatio() Proton Gyro-Magnetic Ratio: (2007 CODATA)
ShieldedProtonGyromagneticRatio() Proton Shielded Gyro-Magnetic Ratio: (2007 CODATA)
NeutronMass() Neutron Mass: (2007 CODATA)
NeutronMassEnegryEquivalent() Neutron Mass Energy Equivalent: (2007 CODATA)
NeutronMolarMass() Neutron Molar Mass: (2007 CODATA)
NeutronComptonWavelength() Neuron Compton Wavelength: (2007 CODATA)
NeutronMagneticMoment() Neutron Magnetic Moment: (2007 CODATA)
NeutronGFactor() Neutron G-Factor: (2007 CODATA)
NeutronGyromagneticRatio() Neutron Gyro-Magnetic Ratio: (2007 CODATA)
DeuteronMass() Deuteron Mass: (2007 CODATA)
DeuteronMassEnegryEquivalent() Deuteron Mass Energy Equivalent: (2007 CODATA)
DeuteronMolarMass() Deuteron Molar Mass: (2007 CODATA)
DeuteronMagneticMoment() Deuteron Magnetic Moment: (2007 CODATA)
HelionMass() Helion Mass: (2007 CODATA)
HelionMassEnegryEquivalent() Helion Mass Energy Equivalent: (2007 CODATA)
HelionMolarMass() Helion Molar Mass: (2007 CODATA)
Avogadro() Avogadro constant: (2010 CODATA)
MTF VWAPA simple wavetrend oscillator based off WaveTrend Oscillator by @LazyBear to visualise 4 different timeframe vwap under 1 chart.
Timeframe can be changed in indicator settings in minutes. Unnecessary waves can be removed by unchecking said TF wave in Style settings.
[blackcat] L2 Ehlers Relative Vigor IndexLevel: 2
Background
John F. Ehlers introuced Relative Vigor Index in his "Cybernetic Analysis for Stocks and Futures" chapter 6 on 2004.
Function
Relative Vigor Index (RVI) uses concepts dating back over three decades and also uses modern filter and digital signal processing theory to realize those concepts as a practical and useful indicator. The RVI merges the old concepts with the new technologies. The basic idea of the RVI is that prices tend to close higher than
they open in up markets and tend to close lower than they open in down markets. The vigor of the move is thus established by where the prices reside at the end of the day. To normalize the index to the daily trading range, the change in price is divided by the maximum range of prices for the day.
The RVI is an oscillator, and we are therefore only concerned with the cycle modes of the market in its use. The sharpest rate of change for a cycle is at its midpoint. Therefore, in the ascending part of the cycle we would expect the difference between the close and open to be at a maximum. This is like a derivative in calculus, where the derivative of a sinewave produces a negative cosine wave. The derivative is therefore a waveform that leads the original sinewave by a quarter cycle. Also, from calculus, integration of a sinewave over a half-cycle period results in another sinewave delayed by a quarter cycle. Summing over a half cycle is basically the same as mathematically integrating, with the result that the waveshape of the sum is delayed by a quarter wavelength relative to the input. The net result of taking the differences and summing produces an oscillator output in phase with the cyclic component of the price. It is also possible to generate a leading function if the summation window is less than a half wavelength of the Dominant Cycle. If a cycle measurement is not available, you can sum the RVI components over a fixed default period. A nominal value of 8 is suggested because this is approximately half the period of most cycles of interest.
Key Signal
RVI ---> Relative Vigor Index fast line
Trigger ---> Relative Vigor Index slow line
Pros and Cons
100% John F. Ehlers definition translation of original work, even variable names are the same. This help readers who would like to use pine to read his book. If you had read his works, then you will be quite familiar with my code style.
Remarks
The 27th script for Blackcat1402 John F. Ehlers Week publication.
Readme
In real life, I am a prolific inventor. I have successfully applied for more than 60 international and regional patents in the past 12 years. But in the past two years or so, I have tried to transfer my creativity to the development of trading strategies. Tradingview is the ideal platform for me. I am selecting and contributing some of the hundreds of scripts to publish in Tradingview community. Welcome everyone to interact with me to discuss these interesting pine scripts.
The scripts posted are categorized into 5 levels according to my efforts or manhours put into these works.
Level 1 : interesting script snippets or distinctive improvement from classic indicators or strategy. Level 1 scripts can usually appear in more complex indicators as a function module or element.
Level 2 : composite indicator/strategy. By selecting or combining several independent or dependent functions or sub indicators in proper way, the composite script exhibits a resonance phenomenon which can filter out noise or fake trading signal to enhance trading confidence level.
Level 3 : comprehensive indicator/strategy. They are simple trading systems based on my strategies. They are commonly containing several or all of entry signal, close signal, stop loss, take profit, re-entry, risk management, and position sizing techniques. Even some interesting fundamental and mass psychological aspects are incorporated.
Level 4 : script snippets or functions that do not disclose source code. Interesting element that can reveal market laws and work as raw material for indicators and strategies. If you find Level 1~2 scripts are helpful, Level 4 is a private version that took me far more efforts to develop.
Level 5 : indicator/strategy that do not disclose source code. private version of Level 3 script with my accumulated script processing skills or a large number of custom functions. I had a private function library built in past two years. Level 5 scripts use many of them to achieve private trading strategy.
Reversal Point Dynamics⇋ Reversal Point Dynamics (RPD)
This is not an indicator; it is a complete system for deconstructing the mechanics of a market reversal. Reversal Point Dynamics (RPD) moves far beyond simplistic pattern recognition, venturing into a deep analysis of the underlying forces that cause trends to exhaust, pause, and turn. It is engineered from the ground up to identify high-probability reversal points by quantifying the confluence of market dynamics in real-time.
Where other tools provide a static signal, RPD delivers a dynamic probability. It understands that a true market turning point is not a single event, but a cascade of failing momentum, structural breakdown, and a shift in market order. RPD's core engine meticulously analyzes each of these dynamic components—the market's underlying state, its velocity and acceleration, its degree of chaos (entropy), and its structural framework. These forces are synthesized into a single, unified Probability Score, offering you an unprecedented, transparent view into the conviction behind every potential reversal.
This is not a "black box" system. It is an open-architecture engine designed to empower the discerning trader. Featuring real-time signal projection, an integrated Fibonacci R2R Target Engine, and a comprehensive dashboard that acts as your Dynamics Control Center , RPD gives you a complete, holistic view of the market's state.
The Theoretical Core: Deconstructing Market Dynamics
RPD's analytical power is born from the intelligent synthesis of multiple, distinct theoretical models. Each pillar of the engine analyzes a different facet of market behavior. The convergence of these analyses—the "Singularity" event referenced in the dashboard—is what generates the final, high-conviction probability score.
1. Pillar One: Quantum State Analysis (QSA)
This is the foundational analysis of the market's current state within its recent context. Instead of treating price as a random walk, QSA quantizes it into a finite number of discrete "states."
Formulaic Concept: The engine establishes a price range using the highest high and lowest low over the Adaptive Analysis Period. This range is then divided into a user-defined number of Analysis Levels. The current price is mapped to one of these states (e.g., in a 9-level system, State 0 is the absolute low, and State 8 is the absolute high).
Analytical Edge: This acts as a powerful foundational filter. The engine will only begin searching for reversal signals when the market has reached a statistically stretched, extreme state (e.g., State 0 or 8). The Edge Sensitivity input allows you to control exactly how close to this extreme edge the price must be, ensuring you are trading from points of maximum potential exhaustion.
2. Pillar Two: Price State Roc (PSR) - The Dynamics of Momentum
This pillar analyzes the kinetic forces of the market: its velocity and acceleration. It understands that it’s not just where the price is, but how it got there that matters.
Formulaic Concept: The psr function calculates two derivatives of price.
Velocity: (price - price ). This measures the speed and direction of the current move.
Acceleration: (velocity - velocity ). This measures the rate of change in that speed. A negative acceleration (deceleration) during a strong rally is a critical pre-reversal warning, indicating momentum is fading even as price may be pushing higher.
Analytical Edge: The engine specifically hunts for exhaustion patterns where momentum is clearly decelerating as price reaches an extreme state. This is the mechanical signature of a weakening trend.
3. Pillar Three: Market Entropy Analysis - The Dynamics of Order & Chaos
This is RPD's chaos filter, a concept borrowed from information theory. Entropy measures the degree of randomness or disorder in the market's price action.
Formulaic Concept: The calculateEntropy function analyzes recent price changes. A market moving directionally and smoothly has low entropy (high order). A market chopping back and forth without direction has high entropy (high chaos). The value is normalized between 0 and 1.
Analytical Edge: The most reliable trades occur in low-entropy, ordered environments. RPD uses the Entropy Threshold to disqualify signals that attempt to form in chaotic, unpredictable conditions, providing a powerful shield against whipsaw markets.
4. Pillar Four: The Synthesis Engine & Probability Calculation
This is where all the dynamic forces converge. The final probability score is a weighted calculation that heavily rewards confluence.
Formulaic Concept: The calculateProbability function intelligently assembles the final score:
A Base Score is established from trend strength and entropy.
An Entropy Score adds points for low entropy (order) and subtracts for high entropy (chaos).
A significant Divergence Bonus is awarded for a classic momentum divergence.
RSI & Volume Bonuses are added if momentum oscillators are in extreme territory or a volume spike confirms institutional interest.
MTF & Adaptive Bonuses add further weight for alignment with higher timeframe structure.
Analytical Edge: A signal backed by multiple dynamic forces (e.g., extreme state + decelerating momentum + low entropy + volume spike) will receive an exponentially higher probability score. This is the very essence of analyzing reversal point dynamics.
The Command Center: Mastering the Inputs
Every input is a precise lever of control, allowing you to fine-tune the RPD engine to your exact trading style, market, and timeframe.
🧠 Core Algorithm
Predictive Mode (Early Detection):
What It Is: Enables the engine to search for potential reversals on the current, unclosed bar.
How It Works: Analyzes intra-bar acceleration and state to identify developing exhaustion. These signals are marked with a ' ? ' and are tentative.
How To Use It: Enable for scalping or very aggressive day trading to get the earliest possible indication. Disable for swing trading or a more conservative approach that waits for full bar confirmation.
Live Signal Mode (Current Bar):
What It Is: A highly aggressive mode that plots tentative signals with a ' ! ' on the live bar based on projected price and momentum. These signals repaint intra-bar.
How It Works: Uses a linear regression projection of the close to anticipate a reversal.
How To Use It: For advanced users who use intra-bar dynamics for execution and understand the nature of repainting signals.
Adaptive Analysis Period:
What It Is: The main lookback period for the QSA, PSR, and Entropy calculations. This is the engine's "memory."
How It Works: A shorter period makes the engine highly sensitive to local price swings. A longer period makes it focus only on major, significant market structure.
How To Use It: Scalping (1-5m): 15-25. Day Trading (15m-1H): 25-40. Swing Trading (4H+): 40-60.
Fractal Strength (Bars):
What It Is: Defines the strength of the pivot detection used for confirming reversal events.
How It Works: A value of '2' requires a candle's high/low to be more extreme than the two bars to its left and right.
How To Use It: '2' is a robust standard. Increase to '3' for an even stricter definition of a structural pivot, which will result in fewer signals.
MTF Multiplier:
What It Is: Integrates pivot data from a higher timeframe for confluence.
How It Works: A multiplier of '4' on a 15-minute chart will pull pivot data from the 1-hour chart (15 * 4 = 60m).
How To Use It: Set to a multiple that corresponds to your preferred higher timeframe for contextual analysis.
🎯 Signal Settings
Min Probability %:
What It Is: Your master quality filter. A signal is only plotted if its score exceeds this threshold.
How It Works: Directly filters the output of the final probability calculation.
How To Use It: High-Quality (80-95): For A+ setups only. Balanced (65-75): For day trading. Aggressive (50-60): For scalping.
Min Signal Distance (Bars):
What It Is: A noise filter that prevents signals from clustering in choppy conditions.
How It Works: Enforces a "cooldown" period of N bars after a signal.
How To Use It: Increase in ranging markets to focus on major swings. Decrease on lower timeframes.
Entropy Threshold:
What It Is: Your "chaos shield." Sets the maximum allowable market randomness for a signal.
How It Works: If calculated entropy is above this value, the signal is invalidated.
How To Use It: Lower values (0.1-0.5): Extremely strict. Higher values (0.7-1.0): More lenient. 0.85 is a good balance.
Adaptive Entropy & Aggressive Mode:
What It Is: Toggles for dynamically adjusting the engine's core parameters.
How It Works: Adaptive Entropy can slightly lower the required probability in strong trends. Aggressive Mode uses more lenient settings across the board.
How To Use It: Keep Adaptive on. Use Aggressive Mode sparingly, primarily for scalping highly volatile assets.
📊 State Analysis
Analysis Levels:
What It Is: The number of discrete "states" for the QSA.
How It Works: More levels create a finer-grained analysis of price location.
How To Use It: 6-7 levels are ideal. Increasing to 9 can provide more precision on very volatile assets.
Edge Sensitivity:
What It Is: Defines how close to the absolute top/bottom of the range price must be.
How It Works: '0' means price must be in the absolute highest/lowest state. '3' allows a signal within the top/bottom 3 states.
How To Use It: '3' provides a good balance. Lower it to '1' or '0' if you only want to trade extreme exhaustion.
The Dashboard: Your Dynamics Control Center
The dashboard provides a transparent, real-time view into the engine's brain. Use it to understand the context behind every signal and to gauge the current market environment at a glance.
🎯 UNIFIED PROB SCORE
TOTAL SCORE: The highest probability score (either Peak or Valley) the engine is currently calculating. This is your main at-a-glance conviction metric. The "Singularity" header refers to the event where market dynamics align—the event RPD is built to detect.
Quality: A human-readable interpretation of the Total Score. "EXCEPTIONAL" (🌟) is a rare, A+ confluence event. "STRONG" (💪) is a high-quality, tradable setup.
📊 ORDER FLOW & COMPONENT ANALYSIS
Volume Spike: Shows if the current volume is significantly higher than average (YES/NO). A 'YES' adds major confirmation.
Peak/Valley Conf: This breaks down the probability score into its directional components, showing you the separate confidence levels for a potential top (Peak) versus a bottom (Valley).
🌌 MARKET STRUCTURE
HTF Trend: Shows the direction of the underlying trend based on a Supertrend calculation.
Entropy: The current market chaos reading. "🔥 LOW" is an ideal, ordered state for trading. "😴 HIGH" is a warning of choppy, unpredictable conditions.
🔮 FIB & R2R ZONE (Large Dashboard)
This section gives you the status of the Fibonacci Target Engine. It shows if an Active Channel (entry zone) or Stop Zone (invalidation zone) is active and displays the precise price levels for the static entry, target, and stop calculated at the time of the signal.
🛡️ FILTERS & PREDICTIVES (Large Dashboard)
This panel provides a status check on all the bonus filters. It shows the current RSI Status, whether a Divergence is present, and if a Live Pending signal is forming.
The Visual Interface: A Symphony of Data
Every visual element is designed for instant, intuitive interpretation of market dynamics.
Signal Markers: These are the primary outputs of the engine.
▼/▲ b: A fully confirmed signal that has passed all filters.
? b: A tentative signal generated in Predictive Mode, indicating developing dynamics.
◈ b: This diamond icon replaces the standard triangle when the signal is confirmed by a strong momentum divergence, highlighting it as a superior setup where dynamics are misaligned with price.
Harmonic Wave: The flowing, colored wave around the price.
What It Represents: The market's "flow dynamic" and volatility.
How to Interpret It: Expanding waves show increasing volatility. The color is tied to the "Quantum Color" in your theme, representing the underlying energy field of the market.
Entropy Particles: The small dots appearing above/below price.
What They Represent: A direct visualization of the "order dynamic."
How to Interpret Them: Their presence signifies a low-entropy, ordered state ideal for trading. Their color indicates the direction of momentum (PSR velocity). Their absence means the market is too chaotic (high entropy).
The Fibonacci Target Engine: The dynamic R2R system appearing post-signal.
Static Fib Levels: Colored horizontal lines representing the market's "structural dynamic."
The Green "Active Channel" Box: Your zone of consideration. An area to manage a potential entry.
Development Philosophy
Reversal Point Dynamics was engineered to answer a fundamental question: can we objectively measure the forces behind a market turn? It is a synthesis of concepts from market microstructure, statistics, and information theory. The objective was never to create a "perfect" system, but to build a robust decision-support tool that provides a measurable, statistical edge by focusing on the principle of confluence.
By demanding that multiple, independent market dynamics align simultaneously, RPD filters out the vast majority of market noise. It is designed for the trader who thinks in terms of probability and risk management, not in terms of certainties. It is a tool to help you discount the obvious and bet on the unexpected alignment of market forces.
"Markets are constantly in a state of uncertainty and flux and money is made by discounting the obvious and betting on the unexpected."
— George Soros
Trade with insight. Trade with anticipation.
— Dskyz, for DAFE Trading Systems
Color█ OVERVIEW
This library is a Pine Script® programming tool for advanced color processing. It provides a comprehensive set of functions for specifying and analyzing colors in various color spaces, mixing and manipulating colors, calculating custom gradients and schemes, detecting contrast, and converting colors to or from hexadecimal strings.
█ CONCEPTS
Color
Color refers to how we interpret light of different wavelengths in the visible spectrum . The colors we see from an object represent the light wavelengths that it reflects, emits, or transmits toward our eyes. Some colors, such as blue and red, correspond directly to parts of the spectrum. Others, such as magenta, arise from a combination of wavelengths to which our minds assign a single color.
The human interpretation of color lends itself to many uses in our world. In the context of financial data analysis, the effective use of color helps transform raw data into insights that users can understand at a glance. For example, colors can categorize series, signal market conditions and sessions, and emphasize patterns or relationships in data.
Color models and spaces
A color model is a general mathematical framework that describes colors using sets of numbers. A color space is an implementation of a specific color model that defines an exact range (gamut) of reproducible colors based on a set of primary colors , a reference white point , and sometimes additional parameters such as viewing conditions.
There are numerous different color spaces — each describing the characteristics of color in unique ways. Different spaces carry different advantages, depending on the application. Below, we provide a brief overview of the concepts underlying the color spaces supported by this library.
RGB
RGB is one of the most well-known color models. It represents color as an additive mixture of three primary colors — red, green, and blue lights — with various intensities. Each cone cell in the human eye responds more strongly to one of the three primaries, and the average person interprets the combination of these lights as a distinct color (e.g., pure red + pure green = yellow).
The sRGB color space is the most common RGB implementation. Developed by HP and Microsoft in the 1990s, sRGB provided a standardized baseline for representing color across CRT monitors of the era, which produced brightness levels that did not increase linearly with the input signal. To match displays and optimize brightness encoding for human sensitivity, sRGB applied a nonlinear transformation to linear RGB signals, often referred to as gamma correction . The result produced more visually pleasing outputs while maintaining a simple encoding. As such, sRGB quickly became a standard for digital color representation across devices and the web. To this day, it remains the default color space for most web-based content.
TradingView charts and Pine Script `color.*` built-ins process color data in sRGB. The red, green, and blue channels range from 0 to 255, where 0 represents no intensity, and 255 represents maximum intensity. Each combination of red, green, and blue values represents a distinct color, resulting in a total of 16,777,216 displayable colors.
CIE XYZ and xyY
The XYZ color space, developed by the International Commission on Illumination (CIE) in 1931, aims to describe all color sensations that a typical human can perceive. It is a cornerstone of color science, forming the basis for many color spaces used today. XYZ, and the derived xyY space, provide a universal representation of color that is not tethered to a particular display. Many widely used color spaces, including sRGB, are defined relative to XYZ or derived from it.
The CIE built the color space based on a series of experiments in which people matched colors they perceived from mixtures of lights. From these experiments, the CIE developed color-matching functions to calculate three components — X, Y, and Z — which together aim to describe a standard observer's response to visible light. X represents a weighted response to light across the color spectrum, with the highest contribution from long wavelengths (e.g., red). Y represents a weighted response to medium wavelengths (e.g., green), and it corresponds to a color's relative luminance (i.e., brightness). Z represents a weighted response to short wavelengths (e.g., blue).
From the XYZ space, the CIE developed the xyY chromaticity space, which separates a color's chromaticity (hue and colorfulness) from luminance. The CIE used this space to define the CIE 1931 chromaticity diagram , which represents the full range of visible colors at a given luminance. In color science and lighting design, xyY is a common means for specifying colors and visualizing the supported ranges of other color spaces.
CIELAB and Oklab
The CIELAB (L*a*b*) color space, derived from XYZ by the CIE in 1976, expresses colors based on opponent process theory. The L* component represents perceived lightness, and the a* and b* components represent the balance between opposing unique colors. The a* value specifies the balance between green and red , and the b* value specifies the balance between blue and yellow .
The primary intention of CIELAB was to provide a perceptually uniform color space, where fixed-size steps through the space correspond to uniform perceived changes in color. Although relatively uniform, the color space has been found to exhibit some non-uniformities, particularly in the blue part of the color spectrum. Regardless, modern applications often use CIELAB to estimate perceived color differences and calculate smooth color gradients.
In 2020, a new LAB-oriented color space, Oklab , was introduced by Björn Ottosson as an attempt to rectify the non-uniformities of other perceptual color spaces. Similar to CIELAB, the L value in Oklab represents perceived lightness, and the a and b values represent the balance between opposing unique colors. Oklab has gained widespread adoption as a perceptual space for color processing, with support in the latest CSS Color specifications and many software applications.
Cylindrical models
A cylindrical-coordinate model transforms an underlying color model, such as RGB or LAB, into an alternative expression of color information that is often more intuitive for the average person to use and understand.
Instead of a mixture of primary colors or opponent pairs, these models represent color as a hue angle on a color wheel , with additional parameters that describe other qualities such as lightness and colorfulness (a general term for concepts like chroma and saturation). In cylindrical-coordinate spaces, users can select a color and modify its lightness or other qualities without altering the hue.
The three most common RGB-based models are HSL (Hue, Saturation, Lightness), HSV (Hue, Saturation, Value), and HWB (Hue, Whiteness, Blackness). All three define hue angles in the same way, but they define colorfulness and lightness differently. Although they are not perceptually uniform, HSL and HSV are commonplace in color pickers and gradients.
For CIELAB and Oklab, the cylindrical-coordinate versions are CIELCh and Oklch , which express color in terms of perceived lightness, chroma, and hue. They offer perceptually uniform alternatives to RGB-based models. These spaces create unique color wheels, and they have more strict definitions of lightness and colorfulness. Oklch is particularly well-suited for generating smooth, perceptual color gradients.
Alpha and transparency
Many color encoding schemes include an alpha channel, representing opacity . Alpha does not help define a color in a color space; it determines how a color interacts with other colors in the display. Opaque colors appear with full intensity on the screen, whereas translucent (semi-opaque) colors blend into the background. Colors with zero opacity are invisible.
In Pine Script, there are two ways to specify a color's alpha:
• Using the `transp` parameter of the built-in `color.*()` functions. The specified value represents transparency (the opposite of opacity), which the functions translate into an alpha value.
• Using eight-digit hexadecimal color codes. The last two digits in the code represent alpha directly.
A process called alpha compositing simulates translucent colors in a display. It creates a single displayed color by mixing the RGB channels of two colors (foreground and background) based on alpha values, giving the illusion of a semi-opaque color placed over another color. For example, a red color with 80% transparency on a black background produces a dark shade of red.
Hexadecimal color codes
A hexadecimal color code (hex code) is a compact representation of an RGB color. It encodes a color's red, green, and blue values into a sequence of hexadecimal ( base-16 ) digits. The digits are numerals ranging from `0` to `9` or letters from `a` (for 10) to `f` (for 15). Each set of two digits represents an RGB channel ranging from `00` (for 0) to `ff` (for 255).
Pine scripts can natively define colors using hex codes in the format `#rrggbbaa`. The first set of two digits represents red, the second represents green, and the third represents blue. The fourth set represents alpha . If unspecified, the value is `ff` (fully opaque). For example, `#ff8b00` and `#ff8b00ff` represent an opaque orange color. The code `#ff8b0033` represents the same color with 80% transparency.
Gradients
A color gradient maps colors to numbers over a given range. Most color gradients represent a continuous path in a specific color space, where each number corresponds to a mix between a starting color and a stopping color. In Pine, coders often use gradients to visualize value intensities in plots and heatmaps, or to add visual depth to fills.
The behavior of a color gradient depends on the mixing method and the chosen color space. Gradients in sRGB usually mix along a straight line between the red, green, and blue coordinates of two colors. In cylindrical spaces such as HSL, a gradient often rotates the hue angle through the color wheel, resulting in more pronounced color transitions.
Color schemes
A color scheme refers to a set of colors for use in aesthetic or functional design. A color scheme usually consists of just a few distinct colors. However, depending on the purpose, a scheme can include many colors.
A user might choose palettes for a color scheme arbitrarily, or generate them algorithmically. There are many techniques for calculating color schemes. A few simple, practical methods are:
• Sampling a set of distinct colors from a color gradient.
• Generating monochromatic variants of a color (i.e., tints, tones, or shades with matching hues).
• Computing color harmonies — such as complements, analogous colors, triads, and tetrads — from a base color.
This library includes functions for all three of these techniques. See below for details.
█ CALCULATIONS AND USE
Hex string conversion
The `getHexString()` function returns a string containing the eight-digit hexadecimal code corresponding to a "color" value or set of sRGB and transparency values. For example, `getHexString(255, 0, 0)` returns the string `"#ff0000ff"`, and `getHexString(color.new(color.red, 80))` returns `"#f2364533"`.
The `hexStringToColor()` function returns the "color" value represented by a string containing a six- or eight-digit hex code. The `hexStringToRGB()` function returns a tuple containing the sRGB and transparency values. For example, `hexStringToColor("#f23645")` returns the same value as color.red .
Programmers can use these functions to parse colors from "string" inputs, perform string-based color calculations, and inspect color data in text outputs such as Pine Logs and tables.
Color space conversion
All other `get*()` functions convert a "color" value or set of sRGB channels into coordinates in a specific color space, with transparency information included. For example, the tuple returned by `getHSL()` includes the color's hue, saturation, lightness, and transparency values.
To convert data from a color space back to colors or sRGB and transparency values, use the corresponding `*toColor()` or `*toRGB()` functions for that space (e.g., `hslToColor()` and `hslToRGB()`).
Programmers can use these conversion functions to process inputs that define colors in different ways, perform advanced color manipulation, design custom gradients, and more.
The color spaces this library supports are:
• sRGB
• Linear RGB (RGB without gamma correction)
• HSL, HSV, and HWB
• CIE XYZ and xyY
• CIELAB and CIELCh
• Oklab and Oklch
Contrast-based calculations
Contrast refers to the difference in luminance or color that makes one color visible against another. This library features two functions for calculating luminance-based contrast and detecting themes.
The `contrastRatio()` function calculates the contrast between two "color" values based on their relative luminance (the Y value from CIE XYZ) using the formula from version 2 of the Web Content Accessibility Guidelines (WCAG) . This function is useful for identifying colors that provide a sufficient brightness difference for legibility.
The `isLightTheme()` function determines whether a specified background color represents a light theme based on its contrast with black and white. Programmers can use this function to define conditional logic that responds differently to light and dark themes.
Color manipulation and harmonies
The `negative()` function calculates the negative (i.e., inverse) of a color by reversing the color's coordinates in either the sRGB or linear RGB color space. This function is useful for calculating high-contrast colors.
The `grayscale()` function calculates a grayscale form of a specified color with the same relative luminance.
The functions `complement()`, `splitComplements()`, `analogousColors()`, `triadicColors()`, `tetradicColors()`, `pentadicColors()`, and `hexadicColors()` calculate color harmonies from a specified source color within a given color space (HSL, CIELCh, or Oklch). The returned harmonious colors represent specific hue rotations around a color wheel formed by the chosen space, with the same defined lightness, saturation or chroma, and transparency.
Color mixing and gradient creation
The `add()` function simulates combining lights of two different colors by additively mixing their linear red, green, and blue components, ignoring transparency by default. Users can calculate a transparency-weighted mixture by setting the `transpWeight` argument to `true`.
The `overlay()` function estimates the color displayed on a TradingView chart when a specific foreground color is over a background color. This function aids in simulating stacked colors and analyzing the effects of transparency.
The `fromGradient()` and `fromMultiStepGradient()` functions calculate colors from gradients in any of the supported color spaces, providing flexible alternatives to the RGB-based color.from_gradient() function. The `fromGradient()` function calculates a color from a single gradient. The `fromMultiStepGradient()` function calculates a color from a piecewise gradient with multiple defined steps. Gradients are useful for heatmaps and for coloring plots or drawings based on value intensities.
Scheme creation
Three functions in this library calculate palettes for custom color schemes. Scripts can use these functions to create responsive color schemes that adjust to calculated values and user inputs.
The `gradientPalette()` function creates an array of colors by sampling a specified number of colors along a gradient from a base color to a target color, in fixed-size steps.
The `monoPalette()` function creates an array containing monochromatic variants (tints, tones, or shades) of a specified base color. Whether the function mixes the color toward white (for tints), a form of gray (for tones), or black (for shades) depends on the `grayLuminance` value. If unspecified, the function automatically chooses the mix behavior with the highest contrast.
The `harmonyPalette()` function creates a matrix of colors. The first column contains the base color and specified harmonies, e.g., triadic colors. The columns that follow contain tints, tones, or shades of the harmonic colors for additional color choices, similar to `monoPalette()`.
█ EXAMPLE CODE
The example code at the end of the script generates and visualizes color schemes by processing user inputs. The code builds the scheme's palette based on the "Base color" input and the additional inputs in the "Settings/Inputs" tab:
• "Palette type" specifies whether the palette uses a custom gradient, monochromatic base color variants, or color harmonies with monochromatic variants.
• "Target color" sets the top color for the "Gradient" palette type.
• The "Gray luminance" inputs determine variation behavior for "Monochromatic" and "Harmony" palette types. If "Auto" is selected, the palette mixes the base color toward white or black based on its brightness. Otherwise, it mixes the color toward the grayscale color with the specified relative luminance (from 0 to 1).
• "Harmony type" specifies the color harmony used in the palette. Each row in the palette corresponds to one of the harmonious colors, starting with the base color.
The code creates a table on the first bar to display the collection of calculated colors. Each cell in the table shows the color's `getHexString()` value in a tooltip for simple inspection.
Look first. Then leap.
█ EXPORTED FUNCTIONS
Below is a complete list of the functions and overloads exported by this library.
getRGB(source)
Retrieves the sRGB red, green, blue, and transparency components of a "color" value.
getHexString(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channel values to a string representing the corresponding color's hexadecimal form.
getHexString(source)
(Overload 2 of 2) Converts a "color" value to a string representing the sRGB color's hexadecimal form.
hexStringToRGB(source)
Converts a string representing an sRGB color's hexadecimal form to a set of decimal channel values.
hexStringToColor(source)
Converts a string representing an sRGB color's hexadecimal form to a "color" value.
getLRGB(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channel values to a set of linear RGB values with specified transparency information.
getLRGB(source)
(Overload 2 of 2) Retrieves linear RGB channel values and transparency information from a "color" value.
lrgbToRGB(lr, lg, lb, t)
Converts a set of linear RGB channel values to a set of sRGB values with specified transparency information.
lrgbToColor(lr, lg, lb, t)
Converts a set of linear RGB channel values and transparency information to a "color" value.
getHSL(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channels to a set of HSL values with specified transparency information.
getHSL(source)
(Overload 2 of 2) Retrieves HSL channel values and transparency information from a "color" value.
hslToRGB(h, s, l, t)
Converts a set of HSL channel values to a set of sRGB values with specified transparency information.
hslToColor(h, s, l, t)
Converts a set of HSL channel values and transparency information to a "color" value.
getHSV(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channels to a set of HSV values with specified transparency information.
getHSV(source)
(Overload 2 of 2) Retrieves HSV channel values and transparency information from a "color" value.
hsvToRGB(h, s, v, t)
Converts a set of HSV channel values to a set of sRGB values with specified transparency information.
hsvToColor(h, s, v, t)
Converts a set of HSV channel values and transparency information to a "color" value.
getHWB(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channels to a set of HWB values with specified transparency information.
getHWB(source)
(Overload 2 of 2) Retrieves HWB channel values and transparency information from a "color" value.
hwbToRGB(h, w, b, t)
Converts a set of HWB channel values to a set of sRGB values with specified transparency information.
hwbToColor(h, w, b, t)
Converts a set of HWB channel values and transparency information to a "color" value.
getXYZ(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channels to a set of XYZ values with specified transparency information.
getXYZ(source)
(Overload 2 of 2) Retrieves XYZ channel values and transparency information from a "color" value.
xyzToRGB(x, y, z, t)
Converts a set of XYZ channel values to a set of sRGB values with specified transparency information
xyzToColor(x, y, z, t)
Converts a set of XYZ channel values and transparency information to a "color" value.
getXYY(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channels to a set of xyY values with specified transparency information.
getXYY(source)
(Overload 2 of 2) Retrieves xyY channel values and transparency information from a "color" value.
xyyToRGB(xc, yc, y, t)
Converts a set of xyY channel values to a set of sRGB values with specified transparency information.
xyyToColor(xc, yc, y, t)
Converts a set of xyY channel values and transparency information to a "color" value.
getLAB(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channels to a set of CIELAB values with specified transparency information.
getLAB(source)
(Overload 2 of 2) Retrieves CIELAB channel values and transparency information from a "color" value.
labToRGB(l, a, b, t)
Converts a set of CIELAB channel values to a set of sRGB values with specified transparency information.
labToColor(l, a, b, t)
Converts a set of CIELAB channel values and transparency information to a "color" value.
getOKLAB(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channels to a set of Oklab values with specified transparency information.
getOKLAB(source)
(Overload 2 of 2) Retrieves Oklab channel values and transparency information from a "color" value.
oklabToRGB(l, a, b, t)
Converts a set of Oklab channel values to a set of sRGB values with specified transparency information.
oklabToColor(l, a, b, t)
Converts a set of Oklab channel values and transparency information to a "color" value.
getLCH(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channels to a set of CIELCh values with specified transparency information.
getLCH(source)
(Overload 2 of 2) Retrieves CIELCh channel values and transparency information from a "color" value.
lchToRGB(l, c, h, t)
Converts a set of CIELCh channel values to a set of sRGB values with specified transparency information.
lchToColor(l, c, h, t)
Converts a set of CIELCh channel values and transparency information to a "color" value.
getOKLCH(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channels to a set of Oklch values with specified transparency information.
getOKLCH(source)
(Overload 2 of 2) Retrieves Oklch channel values and transparency information from a "color" value.
oklchToRGB(l, c, h, t)
Converts a set of Oklch channel values to a set of sRGB values with specified transparency information.
oklchToColor(l, c, h, t)
Converts a set of Oklch channel values and transparency information to a "color" value.
contrastRatio(value1, value2)
Calculates the contrast ratio between two colors values based on the formula from version 2 of the Web Content Accessibility Guidelines (WCAG).
isLightTheme(source)
Detects whether a background color represents a light theme or dark theme, based on the amount of contrast between the color and the white and black points.
grayscale(source)
Calculates the grayscale version of a color with the same relative luminance (i.e., brightness).
negative(source, colorSpace)
Calculates the negative (i.e., inverted) form of a specified color.
complement(source, colorSpace)
Calculates the complementary color for a `source` color using a cylindrical color space.
analogousColors(source, colorSpace)
Calculates the analogous colors for a `source` color using a cylindrical color space.
splitComplements(source, colorSpace)
Calculates the split-complementary colors for a `source` color using a cylindrical color space.
triadicColors(source, colorSpace)
Calculates the two triadic colors for a `source` color using a cylindrical color space.
tetradicColors(source, colorSpace, square)
Calculates the three square or rectangular tetradic colors for a `source` color using a cylindrical color space.
pentadicColors(source, colorSpace)
Calculates the four pentadic colors for a `source` color using a cylindrical color space.
hexadicColors(source, colorSpace)
Calculates the five hexadic colors for a `source` color using a cylindrical color space.
add(value1, value2, transpWeight)
Additively mixes two "color" values, with optional transparency weighting.
overlay(fg, bg)
Estimates the resulting color that appears on the chart when placing one color over another.
fromGradient(value, bottomValue, topValue, bottomColor, topColor, colorSpace)
Calculates the gradient color that corresponds to a specific value based on a defined value range and color space.
fromMultiStepGradient(value, steps, colors, colorSpace)
Calculates a multi-step gradient color that corresponds to a specific value based on an array of step points, an array of corresponding colors, and a color space.
gradientPalette(baseColor, stopColor, steps, strength, model)
Generates a palette from a gradient between two base colors.
monoPalette(baseColor, grayLuminance, variations, strength, colorSpace)
Generates a monochromatic palette from a specified base color.
harmonyPalette(baseColor, harmonyType, grayLuminance, variations, strength, colorSpace)
Generates a palette consisting of harmonious base colors and their monochromatic variants.
Rate of Change HistogramExplanation of Modifications
Converting ROC to Histogram:
Original ROC: The ROC is calculated as roc = 100 * (source - source ) / source , plotted as a line oscillating around zero.
Modification: Instead of plotting roc as a line, it’s now plotted as a histogram using style=plot.style_columns. This makes the ROC values visually resemble the MACD histogram, with bars extending above or below the zero line based on momentum.
Applying MACD’s Four-Color Scheme:
Logic: The histogram’s color is determined by:
Above Zero (roc >= 0): Bright green (#26A69A) if ROC is rising (roc > roc ), light green (#B2DFDB) if falling (roc < roc ).
Below Zero (roc < 0): Bright red (#FF5252) if ROC is falling (roc < roc ), light red (#FFCDD2) if rising (roc > roc ).
Implementation: Used the exact color logic and hex codes from the MACD code, applied to the ROC histogram. This highlights momentum ebbs (falling ROC, fading waves) and flows (rising ROC, strengthening waves).
Removing Signal Line:
Unlike the previous attempt, no signal line is added. The histogram is purely the ROC value, ensuring it directly reflects price change momentum without additional smoothing, making it faster and more responsive to pulse waves, as you indicated ROC performs better than other oscillators.
Alert Conditions:
Added alerts to match the MACD’s logic, triggering when the ROC histogram crosses the zero line:
Rising to Falling: When roc >= 0 and roc < 0, signaling a potential wave peak (e.g., end of Wave 3 or C).
Falling to Rising: When roc <= 0 and roc > 0, indicating a potential wave bottom (e.g., start of Wave 1 or rebound).
These alerts help identify transitions in 3-4 wave pulse patterns.
Plotting:
Histogram: Plotted as columns (plot.style_columns) with the four-color scheme, directly representing ROC momentum.
Zero Line: Kept the gray zero line (#787B86) for reference, consistent with the MACD.
Removed ROC Line/Signal Line: Since you want the ROC to act as the histogram itself, no additional lines are plotted.
Inputs:
Retained the original length (default 9) and source (default close) inputs for consistency.
Removed signal-related inputs (e.g., signal_length, sma_signal) as they’re not needed for a pure ROC histogram.
How This ROC Histogram Works for Wave Pulses
Wave Alignment:
Above Zero (Bullish Momentum): Positive ROC bars indicate flows (e.g., impulse Waves 1, 3, or rebounds in Wave B/C). Bright green bars show accelerating momentum (strong pulses), while light green bars suggest fading momentum (potential wave tops).
Below Zero (Bearish Momentum): Negative ROC bars indicate ebbs (e.g., corrective Waves 2, 4, A, or C). Bright red bars show increasing bearish momentum (strong pullbacks), while light red bars suggest slowing declines (potential wave bottoms).
3-4 Wave Pulses:
In a 3-wave A-B-C correction: Wave A (down) shows bright red bars (falling ROC), Wave B (up) shows bright/light green bars (rising ROC), and Wave C (down) shifts back to red bars.
In a 4-wave consolidation: Alternating green/red bars highlight the rhythmic ebbs and flows as momentum oscillates.
Timing:
Zero-line crossovers mark wave transitions (e.g., from Wave 2 to Wave 3).
Color changes (e.g., bright to light green) signal momentum shifts within waves, helping identify pulse peaks/troughs.
Advantages Over MACD:
The ROC histogram is more responsive than the MACD histogram because ROC directly measures price change percentage, while MACD relies on moving average differences, which introduce lag. This makes the ROC histogram better for capturing rapid 3-4 wave pulses, as you noted.
Example Usage
For a stock with 3-4 wave pulses on a 5-minute chart:
Wave 1 (Flow): ROC rises above zero, histogram turns bright green (rising momentum), indicating a strong bullish pulse.
Wave 2 (Ebb): ROC falls below zero, histogram shifts to bright red (falling momentum), signaling a corrective pullback.
Wave 3 (Flow): ROC crosses back above zero, histogram becomes bright green again, confirming a powerful pulse.
Wave 4 (Ebb): ROC dips slightly, histogram turns light green (falling momentum above zero) or light red (rising momentum below zero), indicating consolidation.
Alerts trigger on zero-line crosses (e.g., from Wave 2 to Wave 3), helping time trades.
Settings Recommendations
Default (length=9): Works well for most time frames, balancing sensitivity and smoothness.
Intraday Pulses: Use length=5 or length=7 for faster signals on 5-minute or 15-minute charts.
Daily Charts: Try length=12 or length=14 for broader wave cycles.
Testing: Apply to a stock with clear wave patterns (e.g., tech stocks like AAPL or TSLA) and adjust length to match the pulse frequency you observe.
Notes
Confirmation: Pair the ROC histogram with price action (e.g., Fibonacci retracements, support/resistance) to validate wave counts, as momentum oscillators can be noisy in choppy markets.
Divergences: Watch for divergences (e.g., price makes a higher high, but ROC histogram bars are lower) to spot wave reversals, especially at Wave 3 or C ends.
Comparison to MACD: The ROC histogram is faster and more direct, making it ideal for short-term pulse waves, but it may be more volatile, so use with technical levels for precision.
Quantum Flow Navigator @DaviddTechQuantum Flow Navigator – DaviddTech
Precision Strategy Builder Powered by Adaptive Filters, Statistical Noise Reduction & Multi-Modal Confirmation
🚀 Bullish Signal : Enter when ALMA, FluxWave, and QuickSilver all confirm bullish trend, with high volume and valid noise filter state.
🔻 Bearish Signal : Enter short when all components align bearishly and filters validate the signal.
🚪 Exit : Automatically managed by dynamic SL/TP or indicator-based reversal logic.
✅ Overview & DaviddTech Methodology
Quantum Flow Navigator is an advanced, multi-component trading system engineered around the strict modular logic of the DaviddTech methodology .
It integrates every core component required for a fully rule-based and signal-driven strategy—baseline, confirmations, volume filter, exit system, and noise filter.
Designed for traders who demand structure, clarity, and data-backed decision-making on 15M, 1H, and 4H charts.
🔍 Indicator Components
Baseline: Adaptive ALMA Filter
Smooth and responsive dynamic trend detection, with momentum validation and optional filled zones for enhanced visual feedback.
Confirmation #1: FluxWave Oscillator
Developed from an enhanced Trendlio concept by @dudeowns , FluxWave uses ALMA-smoothed rate-of-change logic with configurable signal behavior.
Confirmation #2: QuickSilver Band System
Custom breakout engine that maps volatility envelopes using multi-layered deviation bands for clear confirmation of structure breaks and trend direction.
Volume Filter: Normalized Volume Energy
Innovative volume filter inspired by @ceyhun 's work. Filters trades by classifying energy into High, Normal, or Low based on normalized volume context.
Exit System: Dynamic Momentum Stop Loss
Choose from Smart Adaptive, Trailing, Stepped, Percentage, ATR, or Volatility-adjusted logic. Supports TP via risk/reward, ATR multiples, or percentage targets.
Noise Filtration: Quantum Statistical Noise Reduction
Fuses Kalman smoothing with wavelet decomposition to eliminate non-signal noise and improve trade quality and confidence.
🎨 Visual System & Dashboard
🚀/🔻/🚪 Emoji Labels : Buy, sell, and exit trades clearly marked for instant recognition.
Color-Shifting Bars : Reflect FluxWave’s trend bias in real-time.
ALMA Fill Zone : Visual trend envelope between price and ALMA baseline.
QuickSilver Bands : Volatility envelopes with graduated depth for support/resistance awareness.
SL & TP Visuals : Dynamic stop-loss and take-profit zones plotted directly on chart.
Navigator Panel : In-chart dashboard displays real-time trend status, volume energy, noise filter state, signal strength, and active position tracking.
📈 How to Trade with It
Entry Mode Selection : Choose between Combined, ALMA, FluxWave, QuickSilver, or Custom scoring logic.
Final Signals : Trigger only when confirmations align, volume energy is valid, and noise is low.
Dashboard Summary : Use real-time signal display to validate entry strength.
Timeframes : 15M–1H recommended for swing/intraday setups; 5M–15M for automation.
💡 Advanced Features
Entry Strength Scoring: Composite weight of all active components + filters.
Cooldown System: Limits excessive signals in volatile periods.
Multiple Exit Strategies: SL & TP modes with optional indicator-based exits.
Statistical Filtering: Wavelet + Kalman combination optimizes entry confidence.
Full Alert Suite: Covers entries, exits, filter triggers, volume states, and more.
🧠 Suggested Strategy Usage
Wait for full confirmation from ALMA, FluxWave, and QuickSilver.
Ensure volume energy is High and noise filter confirms trend clarity.
Use adaptive SL/TP or indicator-based exits.
Monitor dashboard for live signal strength ≥ threshold.
Use “Balanced” mode for general use; switch to “Aggressive” for tighter signals.
📝 Credits & Originality
Concept based on DaviddTech’s component-driven methodology .
FluxWave Oscillator built as an evolved version of Trendlio with full signal customization — credit @dudeowns .
Volume Energy Filter adapted from the work of @ceyhun .
Noise filtration and system architecture developed independently using Pine Script v6.
All code and logic is original, non-rehashed, and completely refactored to ensure uniqueness.
Quantum Flow Navigator fuses adaptive baselines, confirmation logic, energy-based filters, and statistical refinement into a precision signal engine—optimized for traders who value structure, clarity, and control.
SCE GANN PredictionsThis is a script designed to give an insight on price direction from being above or below a GANN Value.
What Are GANN Waves?
The SCE GANN Predictions indicator is inspired by the work of W.D. Gann, a renowned trader who believed that price movements follow geometric and mathematical patterns. GANN waves use past price behavior—specifically momentum or "velocity"—to forecast where prices might head next.
How Does the Indicator Work?
Calculating Velocity
The script starts by measuring the "velocity" of price movement over a user-defined lookback period (denoted as n). This velocity is the average difference between the close and open prices over n bars. Think of it as the market’s speed in a given direction.
Predicting the Future Price
Using this velocity, the indicator estimates a future price after a specific time horizon—calculated as n + n*2 bars into the future (e.g., if n = 15, it predicts 45 bars ahead). It scales the velocity by a ratio (Gr) to determine the "end price." This is the raw GANN prediction.
Optimizing the Ratio (Gr)
The key to a good prediction is finding the right Gr. The script tests a range of Gr values (from Gr_min to Gr_max, stepping by Gr_step) and evaluates each one by calculating the sum of squared errors (SSE) between the predicted prices and the actual historical close prices. The Gr with the lowest SSE is deemed "optimal" and used for the final prediction.
Smoothing with an SMA
The raw GANN prediction is then smoothed using a simple moving average (SMA) over the lookback period (n). This SMA is plotted on your chart, serving as a dynamic trend line. The plot’s color changes based on the current price: teal if the close is above the SMA (bullish), and red if below (bearish).
Visuals
This example shows how the value explains price strength and changes color. When the price is above the line, and it’s green, we’re showing an up trend. The opposite is when the price is below the line, and it’s red, showing a down trend.
We can see that there may be moments where price drops under the value for just that one bar.
In scenarios with sideways price action, even though the price crosses, there is no follow through. This is a shortcoming of the overall concept.
Customizable Inputs
Timeframe: Choose the timeframe for analysis (default is 2 minutes).
Show GANN Wave: Toggle the GANN SMA plot on or off (default is true).
Lookback Period (Gn): Set the number of bars for velocity and SMA calculations (default is 15).
Min Ratio (Gr_min): The lower bound for the Gr optimization (default is 0.05).
Max Ratio (Gr_max): The upper bound for Gr (default is 0.2).
Step for Gr (Gr_step): The increment for testing Gr values (default is 0.01).
How to Use SCE GANN Predictions
Trend Direction
The colored SMA provides a quick visual cue. Teal suggests an uptrend, while red hints at a downtrend. Use this to align your trades with the broader momentum.
Crossover Signals
Watch for the close price crossing the GANN SMA. A move above could signal a buy opportunity, while a drop below might indicate a sell. Combine this with other indicators for confirmation.
Fine-Tuning
Experiment with the lookback period (Gn) and Gr range to optimize for your market. Shorter lookbacks might suit fast-moving assets, while longer ones could work for slower trends.
Like any technical tool, SCE GANN Predictions isn’t a crystal ball. It’s based on historical data and mathematical assumptions, so it won’t always be spot-on.
Dragon Harmonic Pattern [TradingFinder] Dragon Detector🔵 Introduction
The Dragon Harmonic Pattern is one of the technical analysis tools that assists traders in identifying Potential Reversal Zones (PRZ). Resembling an "M" or "W" shape, this pattern is recognized in financial markets as a method for predicting bullish and bearish trends. By leveraging precise Fibonacci ratios and measuring price movements, traders can use this pattern to forecast market trends with high accuracy.
The Dragon Harmonic Pattern is built on the XABCD structure, where each point plays a significant role in shaping and forecasting price movements. Point X marks the beginning of the trend, representing the initial price movement. Point A indicates the first retracement, usually falling within the 0.380 to 0.620 range of the XA wave.
Next, point B signals the second retracement, which lies within 0.200 to 0.400 of the AB wave. Point C, acting as the hump of the pattern, is generally located within 0.800 to 1.100 of the XA wave. Finally, point D represents the endpoint of the pattern and the Potential Reversal Zone (PRZ), where the primary price reversal occurs.
In bullish scenarios, the Dragon Pattern indicates a reversal from a downtrend to an uptrend, where prices move upward from point D. Conversely, in bearish scenarios, prices decline after reaching point D. Accurate identification of this pattern through Fibonacci ratio analysis and PRZ examination can significantly increase the success rate of trades, enabling traders to adjust their strategies based on key market levels such as 0.618 or 1.100.
Due to its high accuracy in identifying Potential Reversal Zones (PRZ) and its alignment with Fibonacci ratios, the Dragon Harmonic Pattern is considered one of the most popular tools in technical analysis. Traders can use this pattern to pinpoint entry and exit points with greater confidence while minimizing trading risks.
Bullish :
Bearish :
🔵 How to Use
The Dragon Harmonic Pattern indicator helps traders identify bullish and bearish patterns in the market, allowing them to capitalize on available trading opportunities. By analyzing Fibonacci ratios and the XABCD structure, the indicator highlights Potential Reversal Zones (PRZ).
🟣 Bullish Dragon Pattern
In the Bullish Dragon Pattern, the price transitions from a downtrend to an uptrend after reaching point D. At this stage, points X, A, B, C, and D must be carefully identified.
Fibonacci ratios for these points are as follows: Point A should fall within 0.380 to 0.620 of the XA wave, point B within 0.200 to 0.400 of the AB wave, and point C within 0.800 to 1.100 of the XA wave.
When the price reaches point D, traders should look for bullish signals such as reversal candlesticks or increased trading volume to enter a buy position. The take-profit level can be set near the previous price high or based on the 1.272 Fibonacci ratio of the XA wave, while the stop-loss should be placed slightly below point D.
🟣 Bearish Dragon Pattern
In the Bearish Dragon Pattern, the price shifts from an uptrend to a downtrend after reaching point D. In this pattern, points X, A, B, C, and D must also be identified. Fibonacci ratios for these points are as follows: Point A should fall within 0.380 to 0.620 of the XA wave, point B within 0.200 to 0.400 of the AB wave, and point C within 0.800 to 1.100 of the XA wave.
Upon reaching point D, bearish signals such as reversal candlesticks or decreasing trading volume indicate the opportunity to enter a sell position. The take-profit level can be set near the previous price low or based on the 1.272 Fibonacci ratio of the XA wave, while the stop-loss should be placed slightly above point D.
By combining the Dragon Harmonic Pattern indicator with precise Fibonacci ratio analysis, traders can identify key opportunities while minimizing risks and improving their decision-making in both bullish and bearish market conditions.
🔵 Setting
🟣 Logical Setting
ZigZag Pivot Period : You can adjust the period so that the harmonic patterns are adjusted according to the pivot period you want. This factor is the most important parameter in pattern recognition.
Show Valid Forma t: If this parameter is on "On" mode, only patterns will be displayed that they have exact format and no noise can be seen in them. If "Off" is, the patterns displayed that maybe are noisy and do not exactly correspond to the original pattern.
Show Formation Last Pivot Confirm : if Turned on, you can see this ability of patterns when their last pivot is formed. If this feature is off, it will see the patterns as soon as they are formed. The advantage of this option being clear is less formation of fielded patterns, and it is accompanied by the latest pattern seeing and a sharp reduction in reward to risk.
Period of Formation Last Pivot : Using this parameter you can determine that the last pivot is based on Pivot period.
🟣 Genaral Setting
Show : Enter "On" to display the template and "Off" to not display the template.
Color : Enter the desired color to draw the pattern in this parameter.
LineWidth : You can enter the number 1 or numbers higher than one to adjust the thickness of the drawing lines. This number must be an integer and increases with increasing thickness.
LabelSize : You can adjust the size of the labels by using the "size.auto", "size.tiny", "size.smal", "size.normal", "size.large" or "size.huge" entries.
🟣 Alert Setting
Alert : On / Off
Message Frequency : This string parameter defines the announcement frequency. Choices include: "All" (activates the alert every time the function is called), "Once Per Bar" (activates the alert only on the first call within the bar), and "Once Per Bar Close" (the alert is activated only by a call at the last script execution of the real-time bar upon closing). The default setting is "Once per Bar".
Show Alert Time by Time Zone : The date, hour, and minute you receive in alert messages can be based on any time zone you choose. For example, if you want New York time, you should enter "UTC-4". This input is set to the time zone "UTC" by default.
🔵 Conclusion
The Dragon Harmonic Pattern is an advanced and practical technical analysis tool that aids traders in accurately predicting bullish and bearish trends by identifying Potential Reversal Zones (PRZ) and utilizing Fibonacci ratios. Built on the XABCD structure, this pattern stands out for its flexibility and precision in identifying price movements, making it a valuable resource among technical analysts. One of its key advantages is its compatibility with other technical tools such as trendlines, support and resistance levels, and Fibonacci retracements.
By using the Dragon Harmonic Pattern indicator, traders can accurately determine entry and exit points for their trades. The indicator analyzes key Fibonacci ratios—0.380 to 0.620, 0.200 to 0.400, and 0.800 to 1.100—to identify critical levels such as price highs and lows, offering precise trading strategies. In bullish scenarios, traders can profit from rising prices, while in bearish scenarios, they can capitalize on price declines.
In conclusion, the Dragon Harmonic Pattern is a highly reliable tool for identifying trading opportunities with exceptional accuracy. However, for optimal results, it is recommended to combine this pattern with other analytical tools and thoroughly assess market conditions. By utilizing this indicator, traders can reduce their trading risks while achieving higher profitability and confidence in their trading strategies.
Quick scan for cycles🙏🏻
The followup for
As I told before, ML based algorading is all about detecting any kind of non-randomness & exploiting it (cuz allegedly u cant trade randomness), and cycles are legit patterns that can be leveraged
But bro would u really apply Fourier / Wavelets / 'whatever else heavy' on every update of thousands of datasets, esp in real time on HFT / nearly HFT data? That's why this metric. It works much faster & eats hell of a less electicity, will do initial rough filtering of time series that might contain any kind of cyclic behaviour. And then, only on these filtered datasets u gonna put Periodograms / Autocorrelograms and see what's going there for real. Better to do it 10x times less a day on 10x less datasets, right?
I ended up with 2 methods / formulas, I called em 'type 0' and 'type 1':
- type 0: takes sum of abs deviations from drift line, scales it by max abs deviation from the same drift line;
- type 1: takes sum of abs deviations from drift line, scales it by range of non-abs deviations from the same drift line.
Finnaly I've chosen type 0 , both logically (sum of abs dev divided by max abs dev makes more sense) and experimentally. About that actually, here are both formulas put on sine waves with uniform noise:
^^ generated sine wave with uniform noise
^^ both formulas on that wave
^^ both formulas on real data
As you can see type 0 is less affected by noise and shows higher values on synthetic data, but I decided to put type 1 inside as well, in case my analysis was not complete and on real data type 1 can actually be better since it has a lil higher info gain / info content (still not sure). But I can assure u that out of all other ways I've designed & tested for quite a time I tell you, these 2 are really the only ones who got there.
Now about dem thresholds and how to use it.
Both type 0 and type 1 can be modelled with Beta distribution, and based on it and on some obvious & tho non mainstream statistical modelling techniques, I got these thresholds, so these are not optimized overfitted values, but natural ones. Each type has 3 thresholds (from lowest to highest):
- typical value (turned off by default). aka basis ;
- typical deviation from typical value, aka deviation ;
- maximum modelled deviation from typical value (idk whow to call it properly for now, this is my own R&D), aka extension .
So when the metric is above one of these thresholds (which one is up to you, you'll read about it in a sec), it means that there might be a strong enough periodic signal inside the data, and the data got to be put through proper spectral analysis tools to confirm / deny it.
If you look at the pictures above again, you'll see gray signal, that's uniform noise. Take a look at it and see where does it sit comparing to the thresholds. Now you just undertand that picking up a threshold is all about the amount of false positives you care to withstand.
If you take basis as threshold, you'll get tons of false positives (that's why it's even turned off by default), but you'll almost never miss a true positive. If you take deviation as threshold, it's gonna be kinda balanced approach. If you take extension as threshold, you gonna miss some cycles, and gonna get only the strongest ones.
More true positives -> more false positives, less false positives -> less true positives, can't go around that mane
Just to be clear again, I am not completely sure yet, but I def lean towards type 0 as metric, and deviation as threshold.
Live Long and Prosper
P.S.: That was actually the main R&D of the last month, that script I've released earlier came out as derivative.
P.S.: These 2 are the first R&Ds made completely in " art-space", St. Petersburg. Come and see me, say wassup🤘🏻
Next Candle Predictor with Auto HedgingThe "Next Candle Predictor with Auto Hedging" is a Pine Script indicator designed for use on TradingView. It combines predictive analysis and basic hedging techniques to assist traders in making informed decisions. Here's a detailed explanation suitable for public sharing on TradingView:
Overview
This script predicts the closing price of the next candle based on the current candle's open and close prices. It also includes an auto hedging feature that suggests potential hedging levels to mitigate risk based on the predicted price movement. The indicator is particularly useful for traders looking to enhance their trading strategies with predictive analytics.
Key Features
Next Candle Prediction:
The indicator analyzes the current candle's data (open and close prices) to predict whether the next candle will close higher or lower.
If the current candle is bullish (close > open), it predicts a higher close for the next candle. Conversely, if the candle is bearish, it predicts a lower close.
Auto Hedging:
The script calculates a hedging level based on the predicted close price.
If the predicted close indicates a bullish move, the hedge level is set slightly below the predicted close, suggesting where a trader might consider placing a hedge. If the prediction indicates a bearish move, the hedge level is set above the predicted close.
Elliott Wave Analysis:
The script includes a basic implementation of identifying significant price movements, akin to Elliott Wave analysis, by detecting peaks and troughs over a specified number of bars (wave length).
This can help traders identify potential trend reversals or continuations.
How It Works
Input Parameters: Users can customize the waveLength parameter, which determines how many bars back the script looks to identify significant highs and lows.
Peak and Trough Detection: The script identifies the highest high and lowest low within the specified wave length, plotting these points on the chart for visual reference.
Prediction Logic: The predicted close is calculated based on the current candle's behavior, allowing traders to anticipate price movements.
Hedging Level Calculation: The script dynamically calculates a hedging level based on the predicted close, providing a visual cue for potential risk management strategies.
Visual Representation
The indicator plots:
Elliott Wave Highs: Marked in green.
Elliott Wave Lows: Marked in red.
Predicted Close: Shown as a blue step line.
Hedge Level: Displayed as an orange step line.
Benefits
Enhanced Decision-Making: By providing predictions and potential hedging levels, traders can make more informed decisions about entering or exiting positions.
Risk Management: The auto hedging feature helps traders manage risk by suggesting levels where they might place hedges against adverse price movements.
Customizable: The script allows for user-defined parameters, making it adaptable to different trading strategies and market conditions.
Conclusion
The "Next Candle Predictor with Auto Hedging" indicator is a powerful tool for traders seeking to enhance their trading strategies with predictive analytics and risk management techniques. By utilizing this indicator, traders can gain insights into potential price movements and make more informed trading decisions.
Feel free to explore the script, customize it to fit your trading style, and engage with the TradingView community for further insights and improvements!
Related
All Harmonic Patterns [theEccentricTrader]█ OVERVIEW
This indicator automatically draws and sends alerts for all of the harmonic patterns in my public library as they occur. The patterns included are as follows:
• Bearish 5-0
• Bullish 5-0
• Bearish ABCD
• Bullish ABCD
• Bearish Alternate Bat
• Bullish Alternate Bat
• Bearish Bat
• Bullish Bat
• Bearish Butterfly
• Bullish Butterfly
• Bearish Cassiopeia A
• Bullish Cassiopeia A
• Bearish Cassiopeia B
• Bullish Cassiopeia B
• Bearish Cassiopeia C
• Bullish Cassiopeia C
• Bearish Crab
• Bullish Crab
• Bearish Deep Crab
• Bullish Deep Crab
• Bearish Cypher
• Bullish Cypher
• Bearish Gartley
• Bullish Gartley
• Bearish Shark
• Bullish Shark
• Bearish Three-Drive
• Bullish Three-Drive
█ CONCEPTS
Green and Red Candles
• A green candle is one that closes with a close price equal to or above the price it opened.
• A red candle is one that closes with a close price that is lower than the price it opened.
Swing Highs and Swing Lows
• A swing high is a green candle or series of consecutive green candles followed by a single red candle to complete the swing and form the peak.
• A swing low is a red candle or series of consecutive red candles followed by a single green candle to complete the swing and form the trough.
Peak and Trough Prices
• The peak price of a complete swing high is the high price of either the red candle that completes the swing high or the high price of the preceding green candle, depending on which is higher.
• The trough price of a complete swing low is the low price of either the green candle that completes the swing low or the low price of the preceding red candle, depending on which is lower.
Historic Peaks and Troughs
The current, or most recent, peak and trough occurrences are referred to as occurrence zero. Previous peak and trough occurrences are referred to as historic and ordered numerically from right to left, with the most recent historic peak and trough occurrences being occurrence one.
Upper Trends
• A return line uptrend is formed when the current peak price is higher than the preceding peak price.
• A downtrend is formed when the current peak price is lower than the preceding peak price.
• A double-top is formed when the current peak price is equal to the preceding peak price.
Lower Trends
• An uptrend is formed when the current trough price is higher than the preceding trough price.
• A return line downtrend is formed when the current trough price is lower than the preceding trough price.
• A double-bottom is formed when the current trough price is equal to the preceding trough price.
Range
The range is simply the difference between the current peak and current trough prices, generally expressed in terms of points or pips.
Wave Cycles
A wave cycle is here defined as a complete two-part move between a swing high and a swing low, or a swing low and a swing high. The first swing high or swing low will set the course for the sequence of wave cycles that follow; for example a chart that begins with a swing low will form its first complete wave cycle upon the formation of the first complete swing high and vice versa.
Figure 1.
Retracement and Extension Ratios
Retracement and extension ratios are calculated by dividing the current range by the preceding range and multiplying the answer by 100. Retracement ratios are those that are equal to or below 100% of the preceding range and extension ratios are those that are above 100% of the preceding range.
Fibonacci Retracement and Extension Ratios
The Fibonacci sequence is a series of numbers in which each number is the sum of the two preceding numbers, starting with 0 and 1. For example 0 + 1 = 1, 1 + 1 = 2, 1 + 2 = 3, and so on. Ultimately, we could go on forever but the first few numbers in the sequence are as follows: 0 , 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144.
The extension ratios are calculated by dividing each number in the sequence by the number preceding it. For example 0/1 = 0, 1/1 = 1, 2/1 = 2, 3/2 = 1.5, 5/3 = 1.6666..., 8/5 = 1.6, 13/8 = 1.625, 21/13 = 1.6153..., 34/21 = 1.6190..., 55/34 = 1.6176..., 89/55 = 1.6181..., 144/89 = 1.6179..., and so on. The retracement ratios are calculated by inverting this process and dividing each number in the sequence by the number proceeding it. For example 0/1 = 0, 1/1 = 1, 1/2 = 0.5, 2/3 = 0.666..., 3/5 = 0.6, 5/8 = 0.625, 8/13 = 0.6153..., 13/21 = 0.6190..., 21/34 = 0.6176..., 34/55 = 0.6181..., 55/89 = 0.6179..., 89/144 = 0.6180..., and so on.
Fibonacci ranges are typically drawn from left to right, with retracement levels representing ratios inside of the current range and extension levels representing ratios extended outside of the current range. If the current wave cycle ends on a swing low, the Fibonacci range is drawn from peak to trough. If the current wave cycle ends on a swing high the Fibonacci range is drawn from trough to peak.
Measurement Tolerances
Tolerance refers to the allowable variation or deviation from a specific value or dimension. It is the range within which a particular measurement is considered to be acceptable or accurate. I have applied this concept in my pattern detection logic and have set default tolerances where applicable, as perfect patterns are, needless to say, very rare.
Chart Patterns
Generally speaking price charts are nothing more than a series of swing highs and swing lows. When demand outweighs supply over a period of time prices swing higher and when supply outweighs demand over a period of time prices swing lower. These swing highs and swing lows can form patterns that offer insight into the prevailing supply and demand dynamics at play at the relevant moment in time.
‘Let us assume… that you the reader, are not a member of that mysterious inner circle known to the boardrooms as “the insiders”… But it is fairly certain that there are not nearly so many “insiders” as amateur trader supposes and… It is even more certain that insiders can be wrong… Any success they have, however, can be accomplished only by buying and selling… hey can do neither without altering the delicate poise of supply and demand that governs prices. Whatever they do is sooner or later reflected on the charts where you… can detect it. Or detect, at least, the way in which the supply-demand equation is being affected… So, you do not need to be an insider to ride with them frequently… prices move in trends. Some of those trends are straight, some are curved; some are brief and some are long and continued… produced in a series of action and reaction waves of great uniformity. Sooner or later, these trends change direction; they may reverse (as from up to down), or they may be interrupted by some sort of sideways movement and then, after a time, proceed again in their former direction… when a price trend is in the process of reversal… a characteristic area or pattern takes shape on the chart, which becomes recognisable as a reversal formation… Needless to say, the first and most important task of the technical chart analyst is to learn to know the important reversal formations and to judge what they may signify in terms of trading opportunities’ (Edwards & Magee, 1948).
This is as true today as it was when Edwards and Magee were writing in the first half of the last Century, study your patterns and make judgements for yourself about what their implications truly are on the markets and timeframes you are interested in trading.
Over the years, traders have come to discover a multitude of chart and candlestick patterns that are supposed to pertain information on future price movements. However, it is never so clear cut in practice and patterns that where once considered to be reversal patterns are now considered to be continuation patterns and vice versa. Bullish patterns can have bearish implications and bearish patterns can have bullish implications. As such, I would highly encourage you to do your own backtesting.
There is no denying that chart patterns exist, but their implications will vary from market to market and timeframe to timeframe. So it is down to you as an individual to study them and make decisions about how they may be used in a strategic sense.
Harmonic Patterns
The concept of harmonic patterns in trading was first introduced by H.M. Gartley in his book "Profits in the Stock Market", published in 1935. Gartley observed that markets have a tendency to move in repetitive patterns, and he identified several specific patterns that he believed could be used to predict future price movements. The bullish and bearish Gartley patterns are the oldest recognized harmonic patterns in trading and all the other harmonic patterns are modifications of the original Gartley patterns. Gartley patterns are fundamentally composed of 5 points, or 4 waves.
Since then, many other traders and analysts have built upon Gartley's work and developed their own variations of harmonic patterns. One such contributor is Larry Pesavento, who developed his own methods for measuring harmonic patterns using Fibonacci ratios. Pesavento has written several books on the subject of harmonic patterns and Fibonacci ratios in trading. Another notable contributor to harmonic patterns is Scott Carney, who developed his own approach to harmonic trading in the late 1990s and also popularised the use of Fibonacci ratios to measure harmonic patterns. Carney expanded on Gartley's work and also introduced several new harmonic patterns, such as the Shark pattern and the 5-0 pattern.
█ INPUTS
• Change pattern and label colours
• Show or hide patterns individually
• Adjust pattern tolerances
• Set or remove alerts for individual patterns
█ NOTES
You can test the patterns with your own strategies manually by applying the indicator to your chart while in bar replay mode and playing through the history. You could also automate this process with PineScript by using the conditions from my swing and pattern libraries as entry conditions in the strategy tester or your own custom made strategy screener.
█ LIMITATIONS
All green and red candle calculations are based on differences between open and close prices, as such I have made no attempt to account for green candles that gap lower and close below the close price of the preceding candle, or red candles that gap higher and close above the close price of the preceding candle. This may cause some unexpected behaviour on some markets and timeframes. I can only recommend using 24-hour markets, if and where possible, as there are far fewer gaps and, generally, more data to work with.
█ SOURCES
Edwards, R., & Magee, J. (1948) Technical Analysis of Stock Trends (10th edn). Reprint, Boca Raton, Florida: Taylor and Francis Group, CRC Press: 2013.
Trend Direction Sequence | Auto-Multi-TimeframeThe main benefit of this indicator is the ability to see multiple higher timeframes at ones to get a better overview of signals that could mark possible trend reversals with more weight than those on the selected timeframe. Since the higher timeframes are calculated automatically, the user needs to set a Period Multiplier that multiplies the selected timeframe several times to determine the higher timeframes. Equal periods are filtered out. And the current highest timeframe is capped at 1 year by TradingView.
It is possible to alter the sequence Count Limit and the underlying Wavelength. The Wavelength defines the distance between the starting and ending candle. This builds the minimum condition to find a trend. A longer Wavelength means that the distortions between the start and end candle can be bigger, so it can become easier to find a trending sequence. But be careful not to set the length too high as this could mean that the resulting sequence does not really represent a trend anymore. The Count Limit defines the completion of a trending sequence. A higher number makes it more difficult to find a completed sequence, but also makes the result more reliable. If the Wavelength is changed, the Count Limit should be adjusted accordingly.
There is also a qualifier for the completion of a sequence. A completed sequence only will be labeled on the chart, if it is proved that the lowest low/highest high of the last two candlesticks of a period is lower/higher than that of the previous two candlesticks. It does not require the trend to be continuous on the last candlestick. On the contrary, a trend shift may already have begun.
By default, the labeling of completed sequences will appear on the highs and lows of the specific periods. Because the higher periods will take time and several candlesticks to appear, the labels will be redrawn accordingly. As an option it is possible to disable the Count Limit for completed sequences so that the labels will be fluently redrawn until the corresponding sequences are interrupted by trend breaks. Only activate this option, if it can serve a plausible strategy.
The count status of all sequences in the specific timeframe periods is listed in a table. Also the results of the trends in higher timeframes are accumulated and combined into an overall trend. Positive trends are counted as positive, negative in the opposite case. To see the resulting Trend Shift Signals, the user can set a filter under 100% so that not all of them will be filtered out and therefore labeled on the chart (this signals cannot be redrawn). An “External Indicator Analysis Overlay” can be used to analyze the profitability with the provided Trend Shift Signal (TSS) which switches from 0 to 1, if the trend becomes positive or from 0 to -1, if the trend becomes negative.
Honey CypherHoney Cypher Aims to do 4 things
Momentum
Trend Strength
Overbought and oversold zones
Being the most beautiful indicator you ever see
Momentum
The big yellow honey waves primary use is to see the momentum of the market, they can be used in a similar way you would use a MACD or Chaikin Money Flow
On this image you see the honey waves being plotted to the 30 minute timeframe while on the 5 minute chart to have an understanding of longer time momentum in the chart.
Trend Strength
Most tools of the indicator can be used for that but the yellow and purple slope strength lines are made specificaly for this. When you see them curl down you know trend is strengthening towards the downside.
The candle color is based on the amount of Honey waves sloping in one direction. This might be the best tool in the indicator to find Trend Strength. Bright yellow candles mean strong bears while the bright blue candles mean strong bulls.
Overbought and oversold zones
By analysing the waves on a chart you start to learn how big waves can get before a reversal or consolidation period arrives.
You can become profitable with the indicator. But to be honest, my primary focus in making this indicator was find ways to visualise alot of data in a clear and beautiful way.
You should use the indicator with some out of the box ideas instead of just trusting the signals.
examples:
Find a head and shoulders pattern on the top of a huge honey wave.
Find a bottom small wave while the others honey waves are in the opposite direction for entering a pullback.
Use the honey for direction but the yellow and purple slope line crosses for entrys.
Comment your own strategys, I made this open source to be able to get community feedback.
The Honey Cypher waves are calculated in a similar way as the MACD histogram. I've combined MACD formula with some of the lazybear formula. It looks for the distance between 2 moving averages to find trend strength. After that the end results get's smoothed out. It is very satisfying to change that as you can see the honey waves create a melting like motion on each change of smoothing.
Below a preview of the honey cypher moving average lines, all lines have a length that is based on the fibonacci number sequence. Honey cypher measures the distance between for example length 5-8 averages.
I hope this inspires coders to create very beautiful scripts.
MJ ECT== One Line Introduction ==
ECT is a multi-level, trend focused technical indicator based on a three-step hierarchical approach - comprising the tide, wave, and ripple - to trend identification.
== Indicator Philosophy ==
The author believes that market trends can be understood in a three-step hierarchy, with tide at the top, wave in the middle, and ripple at the bottom, corresponding to long-, middle-, and short-term momentum in the stock price. This indicator therefore comprises three technical indicators which aims to reflect the abovementioned features of a trend. These three components are True Strength Index (TSI), Exponential Moving Averages ( EMA ), and Commodity Channel Index ( CCI ).
== Indicator Components and Breakdown ==
True Strength Index (TSI) -> Tide
A 20-period TSI is used to visualize the bullish or bearish sentiment surrounding the stock. Crossovers above the zero line are interpreted as bullish while crossovers below the zero line are interpreted as bearish . This is painted into the background where green represents bullish and red represents bearish . While the background is red ( bearish ), no bullish positions should be taken. Hence, the TSI painted background acts as a directional bias filter and going against the bias is not recommended. After understanding the directional bias, the user can delve further into the areas of value for the stock in the Wave.
Exponential Moving Averages ( EMA ) -> Wave
Four EMA are used (20, 50, 100, 200) to identify the dynamic support and resistance waves in a trending market. Stock price pullbacks into any of these EMA represent areas of value where the user can consider taking positions. The correct EMA to use depends on individual stock's behavior, with multiple bounces on a specified EMA being the priority. After understanding which wave best reflects the area of value of a stock, the user can move on to the Ripple to time their entries.
Commodity Channel Index ( CCI ) -> Ripple
A 5-period CCI is used to identify short-term oversold conditions where prices are on discount. Discount is defined by the 5-period CCI crossing below -100 as it reflects a weekly oversold condition. The indicator will display a small triangle below the candle when this condition is met.
== Ready To Deploy Field Manual ==
When background is painted red, do nothing.
When background is painted green, begin thinking of bullish opportunities.
Look for the specific EMA that has the most bounces of stock price in recent months, this is the area of value to look for buying opportunity.
For the candles that intersect the EMA you identified above, watch for the appearance of a small triangle below the candle that tells you the entry timing.
When the entry timing signal triangle appears, remember the High of that candle and buy your position when the subsequent candle breaks above this High.
If the High is not broken above in the next immediate candle, remember the newer High of the newer candle (basically follow / trail the latest High until a break above is hit).
If the background turns from green to red, stop following the High and do not enter because the market sentiment has changed to bearish .
If you are holding an existing position and the background turns red, consider exiting the position. You may consider remembering the Low of the candle and exit your position if this Low is broken below on a subsequent candle.
== Best Wishes ==
The author wishes the best success for all users of this technical indicator.
Pragmatic risk managementINTRO
The indicator is calculating multiple moving averages on the value of price change %. It then combines the normalized (via arctan function) values into a single normalized value (via simple average).
The total error from the center of gravity and the angle in which the error is accumulating represented by 4 waves:
BLUE = Good for chance for price to go up
GREEN = Good chance for price to continue going up
ORANGE = Good chance for price to go down
RED = Good chance for price to continue going down
A full cycle of ORANGE\RED\BLUE\GREEN colors will ideally lead to the exact same cycle, if not, try to understand why.
NOTICE-
This indicator is calculating large time-windows so It can be heavy on your device. Tested on PC browser only.
My visual setup:
1. Add two indicators on-top of each other and merge their scales (It will help out later).
2. Zoom out price chart to see the maximum possible data.
3. Set different colors for both indicators for simple visual seperation.
4. Choose 2 different values, one as high as possible and one as low as possible.
(Possible - the indicator remains effective at distinguishing the cycle).
Manual calibration:
0. Select a fixed chart resolution (2H resolution minimum recommended).
1. Change the "mul2" parameter in ranges between 4-15 .
2. Observe the "Turning points" of price movement. (Typically when RED\GREEN are about to switch.)
2. Perform a segmentation of time slices and find cycles. No need to be exact!
3. Draw a square on price movement at place and color as the dominant wave currently inside the indicator.
This procedure should lead to a full price segmentation with easier anchoring.
[blackcat] L2 Ehlers Autocorrelation IndicatorLevel: 2
Background
John F. Ehlers introduced Autocorrelation Indicator in his "Cycle Analytics for Traders" chapter 8 on 2013.
Function
If we correlate a waveform composed of perfectly random numbers by itself, the correlation will be perfect. However, if we lag one of the data streams by just one bar, the correlation will be dramatically reduced. In a long memory process with normally distributed random numbers the autocorrelation follows the power law.
One of the underlying principles of technical analysis is that market data do not follow this power law of an efficient market, and we therefore can extract information from the partial correlation of the autocorrelation function. For example, assume the data being examined is a perfect sine wave whose period is 20 bars. The autocorrelation with zero lag, averaged over one full period of the sine wave, is unity. That is, the correlation is perfect. Introducing a lag of one bar in the autocorrelation process causes the average correlation to be decreased slightly. Introducing another bar of lag further decreases the average correlation, and so on. That is, until a lag of 10 bars is reached. In this case, the positive alternation of the sine wave is correlated with the negative alternation of the lagged waveform and the negative alternation of the sine wave is correlated with the positive alternation of the lagged waveform, with the result that perfect anticorrelation has been reached. Continued lag increases causes the average correlation to increase until a lag of 20 bars is reached. When the lag is equal to the period of the sine wave waveform, the correlation is again perfect. In this theoretical example, the correlation values as a function of lag vary exactly as a sine wave.
Market data are considerably messier than purely random numbers or perfect sine waves but contain features of both. However, the characteristics that are uncovered by autocorrelation offer unique trading perspectives. Aside from appearing psychedelic, there are two distinct characteristics of the autocorrelation indicator using minimum averaging. First, there is a sharp reversal from red to yellow and from yellow to red at the timing of price reversals for all periods of lag. Second, there is a variation of the thickness of the bars and the number of bars over the vertical range of the indicator as a function of time.
Key Signal
Corr --> Pearson correlation data array
Pros and Cons
I am sorry this script is NOT 100% as original Ehlers works but I modified it accordingly which demostrated with better visual effect.
Remarks
The 47th script for Blackcat1402 John F. Ehlers Week publication.
Courtesy of @RicardoSantos for RGB functions.
Readme
In real life, I am a prolific inventor. I have successfully applied for more than 60 international and regional patents in the past 12 years. But in the past two years or so, I have tried to transfer my creativity to the development of trading strategies. Tradingview is the ideal platform for me. I am selecting and contributing some of the hundreds of scripts to publish in Tradingview community. Welcome everyone to interact with me to discuss these interesting pine scripts.
The scripts posted are categorized into 5 levels according to my efforts or manhours put into these works.
Level 1 : interesting script snippets or distinctive improvement from classic indicators or strategy. Level 1 scripts can usually appear in more complex indicators as a function module or element.
Level 2 : composite indicator/strategy. By selecting or combining several independent or dependent functions or sub indicators in proper way, the composite script exhibits a resonance phenomenon which can filter out noise or fake trading signal to enhance trading confidence level.
Level 3 : comprehensive indicator/strategy. They are simple trading systems based on my strategies. They are commonly containing several or all of entry signal, close signal, stop loss, take profit, re-entry, risk management, and position sizing techniques. Even some interesting fundamental and mass psychological aspects are incorporated.
Level 4 : script snippets or functions that do not disclose source code. Interesting element that can reveal market laws and work as raw material for indicators and strategies. If you find Level 1~2 scripts are helpful, Level 4 is a private version that took me far more efforts to develop.
Level 5 : indicator/strategy that do not disclose source code. private version of Level 3 script with my accumulated script processing skills or a large number of custom functions. I had a private function library built in past two years. Level 5 scripts use many of them to achieve private trading strategy.