Market Structure Oscillator [LuxAlgo]The Market Structure Oscillator indicator analyzes and synthesizes short-term, intermediate-term, and long-term market structure shifts and breaks, visualizing the output as oscillators and graphical representations of real-time market structures on the main price chart.
The oscillator presentation of the detected market structures helps traders visualize trend momentum and strength, identifying potential trend reversals, and providing different perspectives to enhance the analysis of classic market structures.
🔶 USAGE
A market structure shift signals a potential change in market sentiment or direction, while a break of structure indicates a continuation of the current trend. Detecting these events in real-time helps traders recognize both trend changes and continuations. The market structure oscillator translates these concepts visually, offering deeper insights into market momentum and strength. It aids traders in identifying overbought or oversold conditions, potential trend reversals, and confirming trend direction.
Oscillators often generate signals based on crossing certain thresholds or diverging from price movements, providing cues for traders to enter or exit positions.
The weights determine the influence of each period (short-term, intermediate-term, long-term) on the final oscillator value. By changing the weights, traders can emphasize or de-emphasize the importance of each period. Higher weights increase their respective market structure's influence on the oscillator value. For example, if the weight for the short-term period is set to 0, the final value of the oscillator will be calculated using only the intermediate-term and long-term market structures.
The indicator features a Cycle Oscillator component, which uses the market structure oscillator values to generate a histogram and provide further insights into market cycles and potential signals. The Cycle Oscillator aids in timing by allowing traders to more easily see the median length of an oscillation around the average point, helping them identify both favorable prices and favorable moments for trading.
Users can also display detected market structures on the price chart by enabling the corresponding market structure toggle from the "Market Structures on Chart" settings group.
🔶 DETAILS
The script initiates its analysis by detecting swing levels, which form the fundamental basis for its operations. It begins by identifying short-term swing points, automatically detected solely based on market movements without any reliance on user-defined input. Short-Term Swing Highs (STH) are peaks in price surrounded by lower highs on both sides, while Short-Term Swing Lows (STL) are troughs surrounded by higher lows.
To identify intermediate-term and long-term swing points, the script uses previously detected short-term swing points as reference points. It examines these points to determine intermediate-term swings and further analyzes intermediate-term swings to identify long-term swing points. This method ensures a thorough and unbiased evaluation of market dynamics, providing traders with reliable insights into market structures.
Once swing levels are detected, the process continues with the analysis of Market Structure Shifts (MSS) and Breaks of Structure (BoS). A Market Structure Shift, also known as a Change of Character (CHoCH), is a critical event in price action analysis that suggests a potential shift in market sentiment or direction. It occurs when the price reverses from an established trend, indicating that the current trend may be losing momentum and a reversal could be imminent.
On the other hand, a Break of Structure signifies the continuation of the existing market trend. This event occurs when the price decisively moves beyond a previous swing high or low, confirming the strength and persistence of the prevailing trend.
The indicator analyzes price patterns using a pure price action approach and identifies market structures for short-term, intermediate-term, and long-term periods. The collected data is then normalized and combined using specified weights to calculate the final Market Structure Oscillator value.
🔶 SETTINGS
The indicator incorporates user-defined settings, allowing users to tailor it according to their preferences and trading strategies.
🔹 Market Structure Oscillator
Market Structure Oscillator: Toggles the visibility of the market structures oscillator.
Short Term Weight: Defines the weight for the short-term market structure.
Intermediate Term Weight: Defines the weight for the intermediate-term market structure.
Long Term Weight: Defines the weight for the long-term market structure.
Oscillator Smoothing: Determines the smoothing factor for the oscillator.
Gradient Colors: Allows customization of bullish and bearish gradient colors.
Market Structure Oscillator Crosses: Provides signals based on market structure oscillator equilibrium level crosses.
🔹 Cycle Oscillator
Cycle Oscillator - Histogram: Toggles the visibility of the cycle oscillator.
Cycle Signal Length: Defines the length of the cycle signal.
Cycle Oscillator Crosses: Provides signals based on cycle oscillator crosses.
🔹 Market Structures on Chart
Market Structures: Allows plotting of market structures (short, intermediate, and long term) on the chart.
Line, Label, and Color: Options to display lines and labels for different market structures with customizable colors.
🔹 Oscillator Components
Oscillators: Separately plots short-term, intermediate-term, and long-term oscillators. Provides options to display these oscillators with customizable colors.
🔶 RELATED SCRIPTS
Market-Structures-(Intrabar)
חפש סקריפטים עבור "oscillator"
TASC 2025.06 Cybernetic Oscillator█ OVERVIEW
This script implements the Cybernetic Oscillator introduced by John F. Ehlers in his article "The Cybernetic Oscillator For More Flexibility, Making A Better Oscillator" from the June 2025 edition of the TASC Traders' Tips . It cascades two-pole highpass and lowpass filters, then scales the result by its root mean square (RMS) to create a flexible normalized oscillator that responds to a customizable frequency range for different trading styles.
█ CONCEPTS
Oscillators are indicators widely used by technical traders. These indicators swing above and below a center value, emphasizing cyclic movements within a frequency range. In his article, Ehlers explains that all oscillators share a common characteristic: their calculations involve computing differences . The reliance on differences is what causes these indicators to oscillate about a central point.
The difference between two data points in a series acts as a highpass filter — it allows high frequencies (short wavelengths) to pass through while significantly attenuating low frequencies (long wavelengths). Ehlers demonstrates that a simple difference calculation attenuates lower-frequency cycles at a rate of 6 dB per octave. However, the difference also significantly amplifies cycles near the shortest observable wavelength, making the result appear noisier than the original series. To mitigate the effects of noise in a differenced series, oscillators typically smooth the series with a lowpass filter, such as a moving average.
Ehlers highlights an underlying issue with smoothing differenced data to create oscillators. He postulates that market data statistically follows a pink spectrum , where the amplitudes of cyclic components in the data are approximately directly proportional to the underlying periods. Specifically, he suggests that cyclic amplitude increases by 6 dB per octave of wavelength.
Because some conventional oscillators, such as RSI, use differencing calculations that attenuate cycles by only 6 dB per octave, and market cycles increase in amplitude by 6 dB per octave, such calculations do not have a tangible net effect on larger wavelengths in the analyzed data. The influence of larger wavelengths can be especially problematic when using these oscillators for mean reversion or swing signals. For instance, an expected reversion to the mean might be erroneous because oscillator's mean might significantly deviate from its center over time.
To address the issues with conventional oscillator responses, Ehlers created a new indicator dubbed the Cybernetic Oscillator. It uses a simple combination of highpass and lowpass filters to emphasize a specific range of frequencies in the market data, then normalizes the result based on RMS. The process is as follows:
Apply a two-pole highpass filter to the data. This filter's critical period defines the longest wavelength in the oscillator's passband.
Apply a two-pole SuperSmoother (lowpass filter) to the highpass-filtered data. This filter's critical period defines the shortest wavelength in the passband.
Scale the resulting waveform by its RMS. If the filtered waveform follows a normal distribution, the scaled result represents amplitude in standard deviations.
The oscillator's two-pole filters attenuate cycles outside the desired frequency range by 12 dB per octave. This rate outweighs the apparent rate of amplitude increase for successively longer market cycles (6 dB per octave). Therefore, the Cybernetic Oscillator provides a more robust isolation of cyclic content than conventional oscillators. Best of all, traders can set the periods of the highpass and lowpass filters separately, enabling fine-tuning of the frequency range for different trading styles.
█ USAGE
The "Highpass period" input in the "Settings/Inputs" tab specifies the longest wavelength in the oscillator's passband, and the "Lowpass period" input defines the shortest wavelength. The oscillator becomes more responsive to rapid movements with a smaller lowpass period. Conversely, it becomes more sensitive to trends with a larger highpass period. Ehlers recommends setting the smallest period to a value above 8 to avoid aliasing. The highpass period must not be smaller than the lowpass period. Otherwise, it causes a runtime error.
The "RMS length" input determines the number of bars in the RMS calculation that the indicator uses to normalize the filtered result.
This indicator also features two distinct display styles, which users can toggle with the "Display style" input. With the "Trend" style enabled, the indicator plots the oscillator with one of two colors based on whether its value is above or below zero. With the "Threshold" style enabled, it plots the oscillator as a gray line and highlights overbought and oversold areas based on the user-specified threshold.
Below, we show two instances of the script with different settings on an equities chart. The first uses the "Threshold" style with default settings to pass cycles between 20 and 30 bars for mean reversion signals. The second uses a larger highpass period of 250 bars and the "Trend" style to visualize trends based on cycles spanning less than one year:
All TimeFrame OscillatorsI have always fighted to understand the market direction because it looks different on different timeframes.
I wanted an indicator where I can see all the different timeframes at once.
This indicator shows already existing oscillators but not only in the current chart's timeframe, but all the most important higer timeframes at once.
I have started with the stoch, then added as many oscillators as I could.
Experimenting with this I have saw that confluence of 4H 1D and 1W Stoch can be very interesting and can highlight higher timeframe take profit areas and sometimes major tops/bottoms.
Also bounces can be interesting when a lower timeframe stoch is bounced or rejected from a higher one.
Oscillators:
Stoch - Stochastic Oscillator
SMI - Stochastic Momentum Index
Rsi - Relative Strength Index
StochRsi - Stochastic RSI
WaveTrend - Vumanchu alias Market Cypher Wave Trend line
CCI - Commodity Channel Index
CCIStoch - Stochastic CCI
Williams Percent Range - Williams %R
Norm. MACD - Normalized Moving Average Convergence Divergence
Norm. MACD Hist - Normalized MACD Histogramm
PVT - Normalized Price Volume Trend
MFI - Money Flow Index
CMF - Chaikin Money Flow
Chande Momentum - Chande Momentum
Volume - Normalized Volume
CandleValue - Vumanchu alias Market Cypher MoneyFlow
BBWP - Bollinger Band Width Percentile
Line Type
Smooth: lines are smoothed, but the actualy not closed values are not shown
Step: Step lines, the actually open timeframes are calculated as they closed at the current values
Plot Oscillator or it's Slope:
its possible to not plot the oscillator but it's slope
Print dots when:
Cross Up/Down oversold/overbougt level - best for most oscillators. for example when Stoch crosses above 20 or below 80
Cross os/ob and the one higher TF is about to cross - when it's crosses beolw 80 and the higher timeframe oscillator is still above ans sloping down
Cross above/below middle line - for example on RSI being above or below 50 can be interesting
Print triangles when:
All Slope Match - all visible timeframe lines are pointing up or down at the same time
All above/belove middle line - all visible lines are above or belove the middle line
All above/belove middle line and slope match - like the previous one and the slope direction is the same
All above/below oversold/overbougt - all lines are above or below os/ ob. this is the default. it can be a very important confluence
Lower TF in order - 5, 15, 30, 60 minute timeframes are in order.
Higher TF in order - 4H 1D 1W in order (like 4H above 1D abd 1D above 1W). can be interesting at RSI
4H-1D in order - 4H 1D in order .
Print triangles
Print all triangles - print all triangles when the condition is met
Print only first triangles - only show when the condition starts to met
Print only last triangles - small triangles when the condition met first, large when last. tis is the default.
Timeframes to show:
You can turn on/off different timeframs to show or not from the list below:
1m 5m 15m 30m 1H 4H D 5D W M
This is for experimenting/ understanding the market direction on multiple timeframes at once.
Don't take it's signals (and any other indicator's) as exact trade signals. use it as confirmation instead.
Any comments, insights, ideas are welcome.
Inversion Fair Value Gap Oscillator | Flux Charts💎 GENERAL OVERVIEW
Introducing the new Inversion Fair Value Gap Oscillator (IFVG Oscillator) indicator! This unique indicator identifies and tracks Inversion Fair Value Gaps (IFVGs) in price action, presenting them in an oscillator format to reveal market momentum based on IFVG strength. It highlights bullish and bearish IFVGs while enabling traders to adjust detection sensitivity and apply volume and ATR-based filters for more precise setups. For more information about the process, check the "📌 HOW DOES IT WORK" section.
Features of the new IFVG Oscillator:
Fully Customizable FVG & IFVG Detection
An Oscillator Approach To IFVGs
Divergence Markers For Potential Reversals
Alerts For Divergence Labels
Customizable Styling
📌 HOW DOES IT WORK?
Fair Value Gaps are price gaps within bars that indicate inefficiencies, often filled as the market retraces. An Inversion Fair Value Gap is created in the opposite direction once a FVG gets invalidated. The IFVG Oscillator scans historical bars to identify these gaps, then filters them based on ATR or volume. Each IFVG is marked as bullish or bearish according to the opposite direction of the original FVG that got invalidated.
An oscillator is calculated using recent IFVGs with this formula :
1. The Oscillator starts as 0.
2. When a new IFVG Appears, it contributes (IFVG Width / ATR) to the oscillator of the corresponding type.
3. Each confirmed bar, the oscillator is recalculated as OSC = OSC * (1 - Decay Coefficient)
The oscillator aggregates and decays past IFVGs, allowing recent IFVG activity to dominate the signal. This approach emphasizes current market momentum, with oscillations moving bullish or bearish based on IFVG intensity. Divergences are marked where IFVG oscillations suggest potential reversals. Bullish Divergence conditions are as follows :
1. The current candlestick low must be the lowest of last 25 bars.
2. Net Oscillator (Shown in gray line by default) must be > 0.
3. The current Bullish IFVG Oscillator value should be no more than 0.1 below the highest value from the last 25 bars.
Traders can use divergence signals to get an idea of potential reversals, and use the Net IFVG Oscillator as a trend following marker.
🚩 UNIQUENESS
The Inversion Fair Value Gap Oscillator stands out by converting IFVG activity into an oscillator format, providing a momentum-based visualization of IFVGs that reveals market sentiment dynamically. Unlike traditional indicators that statically mark IFVG zones, the oscillator decays older IFVGs over time, showing only the most recent, relevant activity. This approach allows for real-time insight into market conditions and potential reversals based on oscillating IFVG strength, making it both intuitive and powerful for momentum trading.
Another unique feature is the combination of customizable ATR and volume filters, letting traders adapt the indicator to match their strategy and market type. You can also set-up alerts for bullish & bearish divergences.
⚙️ SETTINGS
1. General Configuration
Decay Coefficient -> The decay coefficient for oscillators. Increasing this setting will result in oscillators giving the weight to recent IFVGs, while decreasing it will distribute the weight equally to the past and recent IFVGs.
2. Fair Value Gaps
Zone Invalidation -> Select between Wick & Close price for FVG Zone Invalidation.
Zone Filtering -> With "Average Range" selected, algorithm will find FVG zones in comparison with average range of last bars in the chart. With the "Volume Threshold" option, you may select a Volume Threshold % to spot FVGs with a larger total volume than average.
FVG Detection -> With the "Same Type" option, all 3 bars that formed the FVG should be the same type. (Bullish / Bearish). If the "All" option is selected, bar types may vary between Bullish / Bearish.
Detection Sensitivity -> You may select between Low, Normal or High FVG detection sensitivity. This will essentially determine the size of the spotted FVGs, with lower sensitivies resulting in spotting bigger FVGs, and higher sensitivies resulting in spotting all sizes of FVGs.
3. Inversion Fair Value Gaps
Zone Invalidation -> Select between Wick & Close price for IFVG Zone Invalidation.
4. Style
Divergence Labels On -> You can switch divergence labels to show up on the chart or the oscillator plot.
Fair Value Gap Oscillator | Flux Charts💎 GENERAL OVERVIEW
Introducing the new Fair Value Gap Oscillator (FVG Oscillator) indicator! This unique indicator identifies and tracks Fair Value Gaps (FVGs) in price action, presenting them in an oscillator format to reveal market momentum based on FVG strength. It highlights bullish and bearish FVGs while enabling traders to adjust detection sensitivity and apply volume and ATR-based filters for more precise setups. For more information about the process, check the "📌 HOW DOES IT WORK" section.
Features of the new FVG Oscillator:
Fully Customizable FVG Detection
An Oscillator Approach To FVGs
Divergence Markers For Potential Reversals
Alerts For Divergence Labels
Customizable Styling
📌 HOW DOES IT WORK?
Fair Value Gaps are price gaps within bars that indicate inefficiencies, often filled as the market retraces. The FVG Oscillator scans historical bars to identify these gaps, then filters them based on ATR or volume. Each FVG is marked as bullish or bearish according to the trend direction that preceded its formation.
An oscillator is calculated using recent FVGs with this formula :
1. The Oscillator starts as 0.
2. When a new FVG Appears, it contributes (FVG Width / ATR) to the oscillator of the corresponding type.
3. Each confirmed bar, the oscillator is recalculated as OSC = OSC * (1 - Decay Coefficient)
The oscillator aggregates and decays past FVGs, allowing recent FVG activity to dominate the signal. This approach emphasizes current market momentum, with oscillations moving bullish or bearish based on FVG intensity. Divergences are marked where FVG oscillations suggest potential reversals. Bullish Divergence conditions are as follows :
1. The current candlestick low must be the lowest of last 25 bars.
2. Net Oscillator (Shown in gray line by default) must be > 0.
3. The current Bullish FVG Oscillator value should be no more than 0.1 below the highest value from the last 25 bars.
Traders can use divergence signals to get an idea of potential reversals, and use the Net FVG Oscillator as a trend following marker.
🚩 UNIQUENESS
The Fair Value Gap Oscillator stands out by converting FVG activity into an oscillator format, providing a momentum-based visualization of FVGs that reveals market sentiment dynamically. Unlike traditional indicators that statically mark FVG zones, the oscillator decays older FVGs over time, showing only the most recent, relevant activity. This approach allows for real-time insight into market conditions and potential reversals based on oscillating FVG strength, making it both intuitive and powerful for momentum trading.
Another unique feature is the combination of customizable ATR and volume filters, letting traders adapt the indicator to match their strategy and market type. You can also set-up alerts for bullish & bearish divergences.
⚙️ SETTINGS
1. General Configuration
Decay Coefficient -> The decay coefficient for oscillators. Increasing this setting will result in oscillators giving the weight to recent FVGs, while decreasing it will distribute the weight equally to the past and recent FVGs.
2. Fair Value Gaps
Zone Invalidation -> Select between Wick & Close price for FVG Zone Invalidation.
Zone Filtering -> With "Average Range" selected, algorithm will find FVG zones in comparison with average range of last bars in the chart. With the "Volume Threshold" option, you may select a Volume Threshold % to spot FVGs with a larger total volume than average.
FVG Detection -> With the "Same Type" option, all 3 bars that formed the FVG should be the same type. (Bullish / Bearish). If the "All" option is selected, bar types may vary between Bullish / Bearish.
Detection Sensitivity -> You may select between Low, Normal or High FVG detection sensitivity. This will essentially determine the size of the spotted FVGs, with lower sensitivies resulting in spotting bigger FVGs, and higher sensitivies resulting in spotting all sizes of FVGs.
3. Style
Divergence Labels On -> You can switch divergence labels to show up on the chart or the oscillator plot.
Time-Decaying Percentile Oscillator [BackQuant]Time-Decaying Percentile Oscillator
1. Big-picture idea
Traditional percentile or stochastic oscillators treat every bar in the look-back window as equally important. That is fine when markets are slow, but if volatility regime changes quickly yesterday’s print should matter more than last month’s. The Time-Decaying Percentile Oscillator attempts to fix that blind spot by assigning an adjustable weight to every past price before it is ranked. The result is a percentile score that “breathes” with market tempo much faster to flag new extremes yet still smooth enough to ignore random noise.
2. What the script actually does
Build a weight curve
• You pick a look-back length (default 28 bars).
• You decide whether weights fall Linearly , Exponentially , by Power-law or Logarithmically .
• A decay factor (lower = faster fade) shapes how quickly the oldest price loses influence.
• The array is normalised so all weights still sum to 1.
Rank prices by weighted mass
• Every close in the window is paired with its weight.
• The pairs are sorted from low to high.
• The cumulative weight is walked until it equals your chosen percentile level (default 50 = median).
• That price becomes the Time-Decayed Percentile .
Find dispersion with robust statistics
• Instead of a fragile standard deviation the script measures weighted Median-Absolute-Deviation about the new percentile.
• You multiply that deviation by the Deviation Multiplier slider (default 1.0) to get a non-parametric volatility band.
Build an adaptive channel
• Upper band = percentile + (multiplier × deviation)
• Lower band = percentile – (multiplier × deviation)
Normalise into a 0-100 oscillator
• The current close is mapped inside that band:
0 = lower band, 50 = centre, 100 = upper band.
• If the channel squeezes, tiny moves still travel the full scale; if volatility explodes, it automatically widens.
Optional smoothing
• A second-stage moving average (EMA, SMA, DEMA, TEMA, etc.) tames the jitter.
• Length 22 EMA by default—change it to tune reaction speed.
Threshold logic
• Upper Threshold 70 and Lower Threshold 30 separate standard overbought/oversold states.
• Extreme bands 85 and 15 paint background heat when aggressive fade or breakout trades might trigger.
Divergence engine
• Looks back twenty bars.
• Flags Bullish divergence when price makes a lower low but oscillator refuses to confirm (value < 40).
• Flags Bearish divergence when price prints a higher high but oscillator stalls (value > 60).
3. Component walk-through
• Source – Any price series. Close by default, switch to typical price or custom OHLC4 for futures spreads.
• Look-back Period – How many bars to rank. Short = faster, long = slower.
• Base Percentile Level – 50 shows relative position around the median; set to 25 / 75 for quartile tracking or 90 / 10 for extreme tails.
• Deviation Multiplier – Higher values widen the dynamic channel, lowering whipsaw but delaying signals.
• Decay Settings
– Type decides the curve shape. Exponential (default 1.16) mimics EMA logic.
– Factor < 1 shrinks influence faster; > 1 spreads influence flatter.
– Toggle Enable Time Decay off to compare with classic equal-weight stochastic.
• Smoothing Block – Choose one of seven MA flavours plus length.
• Thresholds – Overbought / Oversold / Extreme levels. Push them out when working on very mean-reverting assets like FX; pull them in for trend monsters like crypto.
• Display toggles – Show or hide threshold lines, extreme filler zones, bar colouring, divergence labels.
• Colours – Bullish green, bearish red, neutral grey. Every gradient step is automatically blended to generate a heat map across the 0-100 range.
4. How to read the chart
• Oscillator creeping above 70 = market auctioning near the top of its adaptive range.
• Fast poke above 85 with no follow-through = exhaustion fade candidate.
• Slow grind that lives above 70 for many bars = valid bullish trend, not a fade.
• Cross back through 50 shows balance has shifted; treat it like a micro trend change.
• Divergence arrows add extra confidence when you already see two-bar reversal candles at range extremes.
• Background shading (semi-transparent red / green) warns of extreme states and throttles your position size.
5. Practical trading playbook
Mean-reversion scalps
1. Wait for oscillator to reach your desired OB/ OS levels
2. Check the slope of the smoothing MA—if it is flattening the squeeze is mature.
3. Look for a one- or two-bar reversal pattern.
4. Enter against the move; first target = midline 50, second target = opposite threshold.
5. Stop loss just beyond the extreme band.
Trend continuation pullbacks
1. Identify a clean directional trend on the price chart.
2. During the trend, TDP will oscillate between midline and extreme of that side.
3. Buy dips when oscillator hits OS levels, and the same for OB levels & shorting
4. Exit when oscillator re-tags the same-side extreme or prints divergence.
Volatility regime filter
• Use the Enable Time Decay switch as a regime test.
• If equal-weight oscillator and decayed oscillator diverge widely, market is entering a new volatility regime—tighten stops and trade smaller.
Divergence confirmation for other indicators
• Pair TDP divergence arrows with MACD histogram or RSI to filter false positives.
• The weighted nature means TDP often spots divergence a bar or two earlier than standard RSI.
Swing breakout strategy
1. During consolidation, band width compresses and oscillator oscillates around 50.
2. Watch for sudden expansion where oscillator blasts through extreme bands and stays pinned.
3. Enter with momentum in breakout direction; trail stop behind upper or lower band as it re-expands.
6. Customising decay mathematics
Linear – Each older bar loses the same fixed amount of influence. Intuitive and stable; good for slow swing charts.
Exponential – Influence halves every “decay factor” steps. Mirrors EMA thinking and is fastest to react.
Power-law – Mid-history bars keep more authority than exponential but oldest data still fades. Handy for commodities where seasonality matters.
Logarithmic – The gentlest curve; weight drops sharply at first then levels off. Mimics how traders remember dramatic moves for weeks but forget ordinary noise quickly.
Turn decay off to verify the tool’s added value; most users never switch back.
7. Alert catalogue
• TD Overbought / TD Oversold – Cross of regular thresholds.
• TD Extreme OB / OS – Breach of danger zones.
• TD Bullish / Bearish Divergence – High-probability reversal watch.
• TD Midline Cross – Momentum shift that often precedes a window where trend-following systems perform.
8. Visual hygiene tips
• If you already plot price on a dark background pick Bullish Color and Bearish Color default; change to pastel tones for light themes.
• Hide threshold lines after you memorise the zones to declutter scalping layouts.
• Overlay mode set to false so the oscillator lives in its own panel; keep height about 30 % of screen for best resolution.
9. Final notes
Time-Decaying Percentile Oscillator marries robust statistical ranking, adaptive dispersion and decay-aware weighting into a simple oscillator. It respects both recent order-flow shocks and historical context, offers granular control over responsiveness and ships with divergence and alert plumbing out of the box. Bolt it onto your price action framework, trend-following system or volatility mean-reversion playbook and see how much sooner it recognises genuine extremes compared to legacy oscillators.
Backtest thoroughly, experiment with decay curves on each asset class and remember: in trading, timing beats timidity but patience beats impulse. May this tool help you find that edge.
EMD Oscillator (Zeiierman)█ Overview
The Empirical Mode Decomposition (EMD) Oscillator is an advanced indicator designed to analyze market trends and cycles with high precision. It breaks down complex price data into simpler parts called Intrinsic Mode Functions (IMFs), allowing traders to see underlying patterns and trends that aren’t visible with traditional indicators. The result is a dynamic oscillator that provides insights into overbought and oversold conditions, as well as trend direction and strength. This indicator is suitable for all types of traders, from beginners to advanced, looking to gain deeper insights into market behavior.
█ How It Works
The core of this indicator is the Empirical Mode Decomposition (EMD) process, a method typically used in signal processing and advanced scientific fields. It works by breaking down price data into various “layers,” each representing different frequencies in the market’s movement. Imagine peeling layers off an onion: each layer (or IMF) reveals a different aspect of the price action.
⚪ Data Decomposition (Sifting): The indicator “sifts” through historical price data to detect natural oscillations within it. Each oscillation (or IMF) highlights a unique rhythm in price behavior, from rapid fluctuations to broader, slower trends.
⚪ Adaptive Signal Reconstruction: The EMD Oscillator allows traders to select specific IMFs for a custom signal reconstruction. This reconstructed signal provides a composite view of market behavior, showing both short-term cycles and long-term trends based on which IMFs are included.
⚪ Normalization: To make the oscillator easy to interpret, the reconstructed signal is scaled between -1 and 1. This normalization lets traders quickly spot overbought and oversold conditions, as well as trend direction, without worrying about the raw magnitude of price changes.
The indicator adapts to changing market conditions, making it effective for identifying real-time market cycles and potential turning points.
█ Key Calculations: The Math Behind the EMD Oscillator
The EMD Oscillator’s advanced nature lies in its high-level mathematical operations:
⚪ Intrinsic Mode Functions (IMFs)
IMFs are extracted from the data and act as the building blocks of this indicator. Each IMF is a unique oscillation within the price data, similar to how a band might be divided into treble, mid, and bass frequencies. In the EMD Oscillator:
Higher-Frequency IMFs: Represent short-term market “noise” and quick fluctuations.
Lower-Frequency IMFs: Capture broader market trends, showing more stable and long-term patterns.
⚪ Sifting Process: The Heart of EMD
The sifting process isolates each IMF by repeatedly separating and refining the data. Think of this as filtering water through finer and finer mesh sieves until only the clearest parts remain. Mathematically, it involves:
Extrema Detection: Finding all peaks and troughs (local maxima and minima) in the data.
Envelope Calculation: Smoothing these peaks and troughs into upper and lower envelopes using cubic spline interpolation (a method for creating smooth curves between data points).
Mean Removal: Calculating the average between these envelopes and subtracting it from the data to isolate one IMF. This process repeats until the IMF criteria are met, resulting in a clean oscillation without trend influences.
⚪ Spline Interpolation
The cubic spline interpolation is an advanced mathematical technique that allows smooth curves between points, which is essential for creating the upper and lower envelopes around each IMF. This interpolation solves a tridiagonal matrix (a specialized mathematical problem) to ensure that the envelopes align smoothly with the data’s natural oscillations.
To give a relatable example: imagine drawing a smooth line that passes through each peak and trough of a mountain range on a map. Spline interpolation ensures that line is as smooth and close to reality as possible. Achieving this in Pine Script is technically demanding and demonstrates a high level of mathematical coding.
⚪ Amplitude Normalization
To make the oscillator more readable, the final signal is scaled by its maximum amplitude. This amplitude normalization brings the oscillator into a range of -1 to 1, creating consistent signals regardless of price level or volatility.
█ Comparison with Other Signal Processing Methods
Unlike standard technical indicators that often rely on fixed parameters or pre-defined mathematical functions, the EMD adapts to the data itself, capturing natural cycles and irregularities in real-time. For example, if the market becomes more volatile, EMD adjusts automatically to reflect this without requiring parameter changes from the trader. In this way, it behaves more like a “smart” indicator, intuitively adapting to the market, unlike most traditional methods. EMD’s adaptive approach is akin to AI’s ability to learn from data, making it both resilient and robust in non-linear markets. This makes it a great alternative to methods that struggle in volatile environments, such as fixed-parameter oscillators or moving averages.
█ How to Use
Identify Market Cycles and Trends: Use the EMD Oscillator to spot market cycles that represent phases of buying or selling pressure. The smoothed version of the oscillator can help highlight broader trends, while the main oscillator reveals immediate cycles.
Spot Overbought and Oversold Levels: When the oscillator approaches +1 or -1, it may indicate that the market is overbought or oversold, signaling potential entry or exit points.
Confirm Divergences: If the price movement diverges from the oscillator's direction, it may indicate a potential reversal. For example, if prices make higher highs while the oscillator makes lower highs, it could be a sign of weakening trend strength.
█ Settings
Window Length (N): Defines the number of historical bars used for EMD analysis. A larger window captures more data but may slow down performance.
Number of IMFs (M): Sets how many IMFs to extract. Higher values allow for a more detailed decomposition, isolating smaller cycles within the data.
Amplitude Window (L): Controls the length of the window used for amplitude calculation, affecting the smoothness of the normalized oscillator.
Extraction Range (IMF Start and End): Allows you to select which IMFs to include in the reconstructed signal. Starting with lower IMFs captures faster cycles, while ending with higher IMFs includes slower, trend-based components.
Sifting Stopping Criterion (S-number): Sets how precisely each IMF should be refined. Higher values yield more accurate IMFs but take longer to compute.
Max Sifting Iterations (num_siftings): Limits the number of sifting iterations for each IMF extraction, balancing between performance and accuracy.
Source: The price data used for the analysis, such as close or open prices. This determines which price movements are decomposed by the indicator.
-----------------
Disclaimer
The information contained in my Scripts/Indicators/Ideas/Algos/Systems does not constitute financial advice or a solicitation to buy or sell any securities of any type. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
My Scripts/Indicators/Ideas/Algos/Systems are only for educational purposes!
Ultimate Oscillator + DivergencesUltimate Oscillator (UO) + Divergences + Alerts + Lookback periods.
This version of the Ultimate Oscillator adds the following 3 additional features to the stock UO by Tradingview:
- Optional divergence lines drawn directly onto the oscillator.
- Configurable alerts to notify you when divergences occur.
- Configurable lookback periods to fine tune the divergences drawn in order to suit different trading styles and timeframes.
This indicator adds additional features onto the stock Ultimate Oscillator by Tradingview, whose core calculations remain unchanged. Namely the configurable option to automatically, quickly and clearly draw divergence lines onto the oscillator for you as they occur, with minimal delay. It also has the addition of unique alerts, so you can be notified when divergences occur without spending all day watching the charts. Furthermore, this version of the Ultimate Oscillator comes with configurable lookback periods, which can be configured in order to adjust the sensitivity of the divergences, in order to suit shorter or higher timeframe trading approaches.
The Ultimate Oscillator
Tradingview describes the Ultimate Oscillator as follows:
“The Ultimate Oscillator indicator (UO) indicator is a technical analysis tool used to measure momentum across three varying timeframes. The problem with many momentum oscillators is that after a rapid advance or decline in price, they can form false divergence trading signals. For example, after a rapid rise in price, a bearish divergence signal may present itself, however price continues to rise. The ultimate Oscillator attempts to correct this by using multiple timeframes in its calculation as opposed to just one timeframe which is what is used in most other momentum oscillators.”
More information on the history, use cases and calculations of the Ultimate Oscillator can be found here: www.tradingview.com
What are divergences?
Divergence is when the price of an asset is moving in the opposite direction of a technical indicator, such as an oscillator, or is moving contrary to other data. Divergence warns that the current price trend may be weakening, and in some cases may lead to the price changing direction.
There are 4 main types of divergence, which are split into 2 categories;
regular divergences and hidden divergences . Regular divergences indicate possible trend reversals, and hidden divergences indicate possible trend continuation.
Regular bullish divergence: An indication of a potential trend reversal, from the current downtrend, to an uptrend.
Regular bearish divergence: An indication of a potential trend reversal, from the current uptrend, to a downtrend.
Hidden bullish divergence: An indication of a potential uptrend continuation.
Hidden bearish divergence: An indication of a potential downtrend continuation.
Setting alerts.
With this indicator you can set alerts to notify you when any/all of the above types of divergences occur, on any chart timeframe you choose.
Configurable lookback values.
You can adjust the default lookback values to suit your prefered trading style and timeframe. If you like to trade a shorter time frame, lowering the default lookback values will make the divergences drawn more sensitive to short term price action.
How do traders use divergences in their trading?
A divergence is considered a leading indicator in technical analysis, meaning it has the ability to indicate a potential price move in the short term future.
Hidden bullish and hidden bearish divergences, which indicate a potential continuation of the current trend are sometimes considered a good place for traders to begin, since trend continuation occurs more frequently than reversals, or trend changes.
When trading regular bullish divergences and regular bearish divergences, which are indications of a trend reversal, the probability of it doing so may increase when these occur at a strong support or resistance level. A common mistake new traders make is to get into a regular divergence trade too early, assuming it will immediately reverse, but these can continue to form for some time before the trend eventually changes, by using forms of support or resistance as an added confluence, such as when price reaches a moving average, the success rate when trading these patterns may increase.
Typically, traders will manually draw lines across the swing highs and swing lows of both the price chart and the oscillator to see whether they appear to present a divergence, this indicator will draw them for you, quickly and clearly, and can notify you when they occur.
Disclaimer : This script includes code from the stock UO by Tradingview as well as the RSI divergence indicator.
Flow-Weighted Volume Oscillator (FWVO)Volume Dynamics Oscillator (VDO)
Description
The Volume Dynamics Oscillator (VDO) is a powerful and innovative tool designed to analyze volume trends and provide traders with actionable insights into market dynamics. This indicator goes beyond simple volume analysis by incorporating a smoothed oscillator that visualizes the flow and momentum of trading activity, giving traders a clearer understanding of volume behavior over time.
What It Does
The VDO calculates the flow of volume by scaling raw volume data relative to its highest and lowest values over a user-defined period. This scaled volume is then smoothed using an exponential moving average (EMA) to eliminate noise and highlight significant trends. The oscillator dynamically shifts above or below a zero line, providing clear visual cues for bullish or bearish volume pressure.
Key features include:
Smoothed Oscillator: Displays the direction and momentum of volume using gradient colors.
Threshold Markers: Highlights overbought or oversold zones based on upper and lower bounds of the oscillator.
Visual Fill Zones: Uses color-filled areas to emphasize positive and negative volume flow, making it easy to interpret market sentiment.
How It Works
The calculation consists of several steps:
Smoothing with EMA: An EMA of the scaled volume is applied to reduce noise and enhance trends. A separate EMA period can be adjusted by the user (Volume EMA Period).
Dynamic Thresholds: The script determines upper and lower bounds around the smoothed oscillator, derived from its recent highest and lowest values. These thresholds indicate critical zones of volume momentum.
How to Use It
Bullish Signals: When the oscillator is above zero and green, it suggests strong buying pressure. A crossover from negative to positive can signal the start of an uptrend.
Bearish Signals: When the oscillator is below zero and blue, it indicates selling pressure. A crossover from positive to negative signals potential bearish momentum.
Overbought/Oversold Zones: Use the upper and lower threshold levels as indicators of extreme volume momentum. These can act as early warnings for trend reversals.
Traders can adjust the following inputs to customize the indicator:
High/Low Period: Defines the period for volume scaling.
Volume EMA Period: Adjusts the smoothing factor for the oscillator.
Smooth Factor: Controls the responsiveness of the smoothed oscillator.
Originality and Usefulness
The VDO stands out by combining dynamic volume scaling, EMA smoothing, and gradient-based visualization into a single, cohesive tool. Unlike traditional volume indicators, which often display raw or cumulative data, the VDO emphasizes relative volume strength and flow, making it particularly useful for spotting reversals, confirming trends, and identifying breakout opportunities.
The integration of color-coded fills and thresholds enhances usability, allowing traders to quickly interpret market conditions without requiring deep technical expertise.
Chart Recommendations
To maximize the effectiveness of the VDO, use it on a clean chart without additional indicators. The gradient coloring and filled zones make it self-explanatory, but traders can overlay basic trendlines or support/resistance levels for additional context.
For advanced users, the VDO can be paired with price action strategies, candlestick patterns, or other trend-following indicators to improve accuracy and timing.
Adaptive Oscillator constructor [lastguru]Adaptive Oscillators use the same principle as Adaptive Moving Averages. This is an experiment to separate length generation from oscillators, offering multiple alternatives to be combined. Some of the combinations are widely known, some are not. Note that all Oscillators here are normalized to -1..1 range. This indicator is based on my previously published public libraries and also serve as a usage demonstration for them. I will try to expand the collection (suggestions are welcome), however it is not meant as an encyclopaedic resource , so you are encouraged to experiment yourself: by looking on the source code of this indicator, I am sure you will see how trivial it is to use the provided libraries and expand them with your own ideas and combinations. I give no recommendation on what settings to use, but if you find some useful setting, combination or application ideas (or bugs in my code), I would be happy to read about them in the comments section.
The indicator works in three stages: Prefiltering, Length Adaptation and Oscillators.
Prefiltering is a fast smoothing to get rid of high-frequency (2, 3 or 4 bar) noise.
Adaptation algorithms are roughly subdivided in two categories: classic Length Adaptations and Cycle Estimators (they are also implemented in separate libraries), all are selected in Adaptation dropdown. Length Adaptation used in the Adaptive Moving Averages and the Adaptive Oscillators try to follow price movements and accelerate/decelerate accordingly (usually quite rapidly with a huge range). Cycle Estimators, on the other hand, try to measure the cycle period of the current market, which does not reflect price movement or the rate of change (the rate of change may also differ depending on the cycle phase, but the cycle period itself usually changes slowly).
Chande (Price) - based on Chande's Dynamic Momentum Index (CDMI or DYMOI), which is dynamic RSI with this length
Chande (Volume) - a variant of Chande's algorithm, where volume is used instead of price
VIDYA - based on VIDYA algorithm. The period oscillates from the Lower Bound up (slow)
VIDYA-RS - based on Vitali Apirine's modification of VIDYA algorithm (he calls it Relative Strength Moving Average). The period oscillates from the Upper Bound down (fast)
Kaufman Efficiency Scaling - based on Efficiency Ratio calculation originally used in KAMA
Deviation Scaling - based on DSSS by John F. Ehlers
Median Average - based on Median Average Adaptive Filter by John F. Ehlers
Fractal Adaptation - based on FRAMA by John F. Ehlers
MESA MAMA Alpha - based on MESA Adaptive Moving Average by John F. Ehlers
MESA MAMA Cycle - based on MESA Adaptive Moving Average by John F. Ehlers , but unlike Alpha calculation, this adaptation estimates cycle period
Pearson Autocorrelation* - based on Pearson Autocorrelation Periodogram by John F. Ehlers
DFT Cycle* - based on Discrete Fourier Transform Spectrum estimator by John F. Ehlers
Phase Accumulation* - based on Dominant Cycle from Phase Accumulation by John F. Ehlers
Length Adaptation usually take two parameters: Bound From (lower bound) and To (upper bound). These are the limits for Adaptation values. Note that the Cycle Estimators marked with asterisks(*) are very computationally intensive, so the bounds should not be set much higher than 50, otherwise you may receive a timeout error (also, it does not seem to be a useful thing to do, but you may correct me if I'm wrong).
The Cycle Estimators marked with asterisks(*) also have 3 checkboxes: HP (Highpass Filter), SS (Super Smoother) and HW (Hann Window). These enable or disable their internal prefilters, which are recommended by their author - John F. Ehlers . I do not know, which combination works best, so you can experiment.
Chande's Adaptations also have 3 additional parameters: SD Length (lookback length of Standard deviation), Smooth (smoothing length of Standard deviation) and Power ( exponent of the length adaptation - lower is smaller variation). These are internal tweaks for the calculation.
Oscillators section offer you a choice of Oscillator algorithms:
Stochastic - Stochastic
Super Smooth Stochastic - Super Smooth Stochastic (part of MESA Stochastic) by John F. Ehlers
CMO - Chande Momentum Oscillator
RSI - Relative Strength Index
Volume-scaled RSI - my own version of RSI. It scales price movements by the proportion of RMS of volume
Momentum RSI - RSI of price momentum
Rocket RSI - inspired by RocketRSI by John F. Ehlers (not an exact implementation)
MFI - Money Flow Index
LRSI - Laguerre RSI by John F. Ehlers
LRSI with Fractal Energy - a combo oscillator that uses Fractal Energy to tune LRSI gamma
Fractal Energy - Fractal Energy or Choppiness Index by E. W. Dreiss
Efficiency ratio - based on Kaufman Adaptive Moving Average calculation
DMI - Directional Movement Index (only ADX is drawn)
Fast DMI - same as DMI, but without secondary smoothing
If no Adaptation is selected (None option), you can set Length directly. If an Adaptation is selected, then Cycle multiplier can be set.
Before an Oscillator, a High Pass filter may be executed to remove cyclic components longer than the provided Highpass Length (no High Pass filter, if Highpass Length = 0). Both before and after the Oscillator a Moving Average can be applied. The following Moving Averages are included: SMA, RMA, EMA, HMA , VWMA, 2-pole Super Smoother, 3-pole Super Smoother, Filt11, Triangle Window, Hamming Window, Hann Window, Lowpass, DSSS. For more details on these Moving Averages, you can check my other Adaptive Constructor indicator:
The Oscillator output may be renormalized and postprocessed with the following Normalization algorithms:
Stochastic - Stochastic
Super Smooth Stochastic - Super Smooth Stochastic (part of MESA Stochastic) by John F. Ehlers
Inverse Fisher Transform - Inverse Fisher Transform
Noise Elimination Technology - a simplified Kendall correlation algorithm "Noise Elimination Technology" by John F. Ehlers
Except for Inverse Fisher Transform, all Normalization algorithms can have Length parameter. If it is not specified (set to 0), then the calculated Oscillator length is used.
More information on the algorithms is given in the code for the libraries used. I am also very grateful to other TradingView community members (they are also mentioned in the library code) without whom this script would not have been possible.
Multi-Oscillator Adaptive Kernel | AlphaAlgosMulti-Oscillator Adaptive Kernel | AlphaAlgos
Overview
The Multi-Oscillator Adaptive Kernel (MOAK) is an advanced technical analysis tool that combines multiple oscillators through sophisticated kernel-based smoothing algorithms. This indicator is designed to provide clearer trend signals while filtering out market noise, offering traders a comprehensive view of market momentum across multiple timeframes.
Key Features
• Fusion of multiple technical oscillators (RSI, Stochastic, MFI, CCI)
• Advanced kernel smoothing technology with three distinct mathematical models
• Customizable sensitivity and lookback periods
• Clear visual signals for trend shifts and reversals
• Overbought/oversold zones for precise entry and exit timing
• Adaptive signal that responds to varying market conditions
Technical Components
The MOAK indicator utilizes a multi-layer approach to signal generation:
1. Oscillator Fusion
The core of the indicator combines normalized readings from up to four popular oscillators:
• RSI (Relative Strength Index) - Measures the speed and change of price movements
• Stochastic - Compares the closing price to the price range over a specific period
• MFI (Money Flow Index) - Volume-weighted RSI that includes trading volume
• CCI (Commodity Channel Index) - Measures current price level relative to an average price
2. Kernel Smoothing
The combined oscillator data is processed through one of three kernel functions:
• Exponential Kernel - Provides stronger weighting to recent data with exponential decay
• Linear Kernel - Applies a linear weighting from most recent to oldest data points
• Gaussian Kernel - Uses a bell curve distribution that helps filter out extreme values
3. Dual Signal Lines
• Fast Signal Line - Responds quickly to price changes
• Slow Signal Line - Provides confirmation and shows the underlying trend direction
Configuration Options
Oscillator Selection:
• Enable/disable each oscillator (RSI, Stochastic, MFI, CCI)
• Customize individual lookback periods for each oscillator
Kernel Settings:
• Kernel Type - Choose between Exponential, Linear, or Gaussian mathematical models
• Kernel Length - Adjust the smoothing period (higher values = smoother line)
• Sensitivity - Fine-tune the indicator's responsiveness (higher values = more responsive)
Display Options:
• Color Bars - Toggle price bar coloring based on indicator direction
How to Interpret the Indicator
Signal Line Direction:
• Upward movement (teal) indicates bullish momentum
• Downward movement (magenta) indicates bearish momentum
Trend Shifts:
• Small circles mark the beginning of new uptrends
• X-marks indicate the start of new downtrends
Overbought/Oversold Conditions:
• Values above +50 suggest overbought conditions (potential reversal or pullback)
• Values below -50 suggest oversold conditions (potential reversal or bounce)
Trading Strategies
Trend Following:
• Enter long positions when the signal line turns teal and shows an uptrend
• Enter short positions when the signal line turns magenta and shows a downtrend
• Use the slow signal line (area fill) as confirmation of the underlying trend
Counter-Trend Trading:
• Look for divergences between price and the indicator
• Consider profit-taking when the indicator reaches overbought/oversold areas
• Wait for trend shift signals before entering counter-trend positions
Multiple Timeframe Analysis:
• Use the indicator across different timeframes for confirmation
• Higher timeframe signals carry more weight than lower timeframe signals
Best Practices
• Experiment with different kernel types for various market conditions
• Gaussian kernels often work well in ranging markets
• Exponential kernels can provide earlier signals in trending markets
• Combine with volume analysis for higher probability trades
• Use appropriate stop-loss levels as the indicator does not guarantee price movements
This indicator is provided as-is with no guarantees of profit. Always use proper risk management when trading with any technical indicator. Nothing is financial advise.
WillyCycle Oscillator&DoubleMa/ErkOzi/"This code creates a technical analysis indicator used to calculate and visualize the WillyCycle oscillator and double moving average indicators on the price of a financial asset. The functionality can be summarized as follows:
*Calculate the WillyCycle oscillator: The WillyCycle is an oscillator calculated based on the highest and lowest values of an asset. This oscillator is used to measure overbought or oversold conditions of the asset.
*Calculate the double moving average: The double moving average helps determine trends by calculating the short-term and long-term moving averages of asset prices.
*Use the WillyCycle oscillator and double moving average indicators together: The WillyCycle oscillator is combined with the double moving averages to provide a clearer indication of overbought and oversold conditions.
*Visualize the indicator with color coding: The indicator is color-coded to show overbought and oversold conditions. Additionally, line and background colors are changed to make the indicator more readable.
Many parameters can be adjusted on the indicator: The indicator can be customized and modified by the user. For example, the period of the WillyCycle oscillator and the lengths of the double moving averages can be adjusted."
The strategy is based on two indicators - the WillyCycle oscillator and the double moving average. The WillyCycle oscillator measures overbought and oversold conditions of the asset based on its highest and lowest values. The double moving average calculates short-term and long-term moving averages of the asset's price, which can help identify trends.
The WillyCycle oscillator and the double moving average are combined in this strategy to provide a clearer indication of overbought and oversold conditions. When the WillyCycle oscillator indicates that the asset is oversold and the short-term moving average crosses above the long-term moving average, it may signal a buy opportunity. Conversely, when the WillyCycle oscillator indicates that the asset is overbought and the short-term moving average crosses below the long-term moving average, it may signal a sell opportunity.
To make it easier for traders to read and interpret the indicator, color-coding is used to indicate overbought and oversold conditions. The user can also customize the indicator by adjusting parameters such as the period of the WillyCycle oscillator and the lengths of the double moving averages.
*ıt provides successful buy and sell signals for price reversals.
*You can open counter trades in overbought and oversold areas by following the averages.
Hull Butterfly Oscillator [LuxAlgo]The Hull Butterfly Oscillator (HBO) is an oscillator constructed from the difference between a regular Hull Moving Average (HMA) and another with coefficients flipped horizontally.
Levels are obtained from cumulative means of the absolute value of the oscillator. These are used to return dots indicating potential reversal points.
Settings
Length: Number of past price inputs processed by the oscillator.
Levels Multiplier: Determine how far the levels are from 0.
Src: Input source of the indicator.
Usage
The oscillator can be used like most available oscillators. The sign of the HBO allows determining the current trend direction, while divergences with price might indicate potential reversals.
The displayed levels can additionally indicate whether the market is overbought or oversold. When the direction of the oscillator changes while being above the upper or lower level a red dot (if above upper level) or green dot (if under lower level) will be displayed, indicating a potential reversal.
Details
The name of the indicator is directly derived behind the coefficients used for its calculation. Displaying regular Hull coefficients alongside those flipped horizontally slightly resemble a butterfly, the difference between these sets of coefficients allows obtaining the HBO.
This operation allows to obtain a more structured impulse response, potentially giving less undesired performances on the frequency domain compared to simpler operation involving subtracting the HMA to a SMA, EMA or WMA.
TheATR: Aroon Oscillator.Aroon Oscillator (AO).
The Aroon Oscillator, was developed by Tushar Chande, in 1995, to highlight the start of a new trend and to measure trend strength.
I re-branded a bit the whole thing, If you are familiar with how this Oscillator usually is, you are going to notice the differences.
Aroon Oscillator Components.
1 - Aroon Up -> Bullish Directional Component, highlighted in blue.
2 - Aroon Down -> Bearish Directional Component, highlighted in purple.
We also have the Oscillators static thresholds, which are:
- 0 Line.
- 100 Line.
- Exit Signal Line Level.
How to read the Aroon Oscillator.
The AO main goal, is to identify the trend from its first stages, to then come up with how strong that trend is.
So, classic interpretation for the AO would be:
-Aroon Up>Aroon Down = Bull Scenario.
-Aroon Up
SuperTrend Oscillator [LuxAlgo]This oscillator is made of three components, all derived from the SuperTrend indicator. This approach allows the user to easily determine overbought/sold zones, identify whether a retracement is present or if the price is ranging or trending. It also allows for the anticipation of the potential price cross with the SuperTrend.
We provide additional information including whether a signal returned by the SuperTrend was false, as well as the percentage of false signals.
Settings
Length: Period of the "average true range" used in the calculation of the SuperTrend
Mult: Multiplicative factor for the "average true range"
Smooth: Determines the degree of smoothing of the histogram
Misc:
Fixed Transparency: Use a fixed transparency for the main oscillator
Show Lines: Show the lines displayed by the indicator
Show Labels: Show the labels displayed by the indicator
Usage
The indicator is in a range of (-100,100) with values closer to 100/-100 indicating a stronger trend. The main oscillator value above 0 indicates that the price is above the SuperTrend.
It is possible to identify when a retracement is present in a trend. This is often indicated by an oscillator value moving within 50/-50.
Each overbought/oversold level can be used to determine potential exit points.
The indicator also includes two additional oscillators derived from the main oscillator. A smoothed version of the main oscillator (Signal), and a smoothed version of the difference between the Main and Signal oscillators (Histogram), thus making the oscillator part of the indicator more similar to MACD.
One can use the histogram to anticipate when the price might cross the SuperTrend by comparing the sign between the main and histogram. Potential false signals can also be filtered with this method.
Certain crosses between the price and SuperTrend can be filtered out when the histogram and main oscillator have a different sign (here main = 1, histogram = -1).
We include various indications in order to analyze the signals returned by the SuperTrend. The indicator displays symbols indicating whether a signal was false or not.
A cross symbol will be displayed at the top of the displayed lines when the previous Buy signal was false, else a checkmark is displayed. Symbols displayed at the bottom of the lines are referring to sell signals. We also provide a percentage of false signals, calculated over the entire chart history.
Details
The scaling method used is similar to max-min normalization. We first compute the difference between the price and SuperTrend and divide the result by the difference between the upper and lower extremity used to compute the SuperTrend. Values higher than (1,-1) can occur when price crosses the SuperTrend and as such we use the max and min functions to attenuate these.
The filter used to compute the signal line is based on exponential averaging and is fully adaptive. The smoothing factor used for its computation is the squared value of the main oscillator, divided by length . Since higher values of the oscillator are associated with trending markets, the filter will be closer to the main oscillator when the market is ranging.
Two-Pole Oscillator [BigBeluga]
The Two-Pole Oscillator is an advanced smoothing oscillator designed to provide traders with precise market signals by leveraging deviation-based calculations combined with a unique two-pole filtering technique. It offers clear visual representation and actionable signals for smart trading decisions.
🔵Key Features:
Two-Pole Filtering: Smooths out the main oscillator signal to reduce noise, providing a cleaner and more reliable view of market momentum and trend strength.
// Two-pole smooth filter function
f_two_pole_filter(source, length) =>
var float smooth1 = na
var float smooth2 = na
alpha = 2.0 / (length + 1)
if na(smooth1)
smooth1 := source
else
smooth1 := (1 - alpha) * smooth1 + alpha * source
if na(smooth2)
smooth2 := smooth1
else
smooth2 := (1 - alpha) * smooth2 + alpha * smooth1
Deviation-Based Oscillator: Utilizes price deviations from the mean to generate dynamic signals, making it ideal for detecting overbought and oversold conditions.
float sma1 = ta.sma(close, 25)
float sma_n1 = ((close - sma1) - ta.sma(close - sma1, 25)) / ta.stdev(close - sma1, 25)
Signal Gradient Strength: Signals on the main oscillator line feature gradient coloring based on their proximity to the 0 level:
➔ Closer to 0: More transparent, indicating weaker signals.
➔ Closer to 1 or -1: Less transparent, highlighting stronger signals.
Level-Based Signal Validation: Parallel levels are plotted on the chart for each signal:
➔ If a level is crossed by price, the signal is invalidated, marked by an "X" at the invalidation point.
Trend Continuation
Invalidation Levels: Serve as potential stop-loss or trade-reversal zones, enabling traders to make more informed and disciplined trading decisions.
Dynamic Chart Plotting: Signals are plotted directly on the chart with corresponding levels, providing a comprehensive visual representation for easy interpretation.
🔵How It Works:
The oscillator calculates price deviation from a mean value and applies two-pole filtering to smooth the resulting signal.
Gradient-colored signals reflect their strength, with transparency indicating proximity to the 0 level on the oscillator scale.
Buy and sell signals are generated based on crossovers and crossunders of the oscillator line with a signal line.
If a level is crossed, the corresponding signal is marked with a "X" plotted on the chart at the crossover point.
🔵Use Cases:
Detecting overbought or oversold market conditions with a smoother, noise-free oscillator.
Using invalidation levels to set clear stop-loss or trade exit points.
Identifying strong momentum signals and filtering out weaker, less reliable ones.
Combining oscillator signals with price action for more precise trade entries and exits.
This indicator is perfect for traders seeking a refined approach to oscillator analysis, combining signal strength visualization with actionable invalidation levels to enhance trading precision and strategy.
ATR-Based Trend Oscillator with Donchian ChannelsThis script, my Magnum Opus, combines the best elements of trend detection into a powerful ATR-based trend strength oscillator. It has been meticulously engineered to give traders a consistent edge in trend analysis across any asset, including highly volatile markets like crypto and forex. The oscillator normalizes trend strength as a percentage of ATR, smoothing out noise and allowing the oscillator to remain highly responsive while adapting to varying asset volatility.
Key Features:
ATR-Based Oscillator: Measures trend strength in relation to Average True Range, which enhances accuracy and consistency across different assets. By normalizing to ATR, the oscillator produces stable and reliable values that capture shifts in trend momentum effectively.
Dual Moving Averages for Smoothing: This script features two customizable moving averages to help confirm trend direction and strength, making it adaptable for short- and long-term analysis alike.
Donchian Channels for Strength Bounds: A Donchian Channel over the smoothed trend strength oscillator visually bounds strength levels, enabling traders to spot breakout points or reversals quickly.
Ideal for Multi-Asset Trading: The versatility of this indicator makes it a perfect choice across various asset classes, from stocks to forex and cryptocurrencies, maintaining consistency in signals and reliability.
Suggested Pairing: Use this oscillator alongside a directional indicator, such as the Vortex Indicator, to confirm trend direction. This pairing allows traders to understand not only the strength but also the direction of the trend for optimized entry and exit points.
Why This Indicator Will Elevate Your Trading: This trend strength oscillator has been refined to provide clarity and edge for any trader. By incorporating ATR-based normalization, it maintains accuracy in volatile and steady markets alike. The Donchian Channels add structure to trend strength, giving clear overbought and oversold signals, while the two moving averages ensure that lag is minimized without sacrificing accuracy.
Whether you're scalping or trend-trading, this oscillator will enhance your ability to detect and interpret trend strength, making it an essential tool in any trading arsenal.
Momentum Nexus Oscillator [UAlgo]The "Momentum Nexus Oscillator " indicator is a comprehensive momentum-based tool designed to provide traders with visual cues on market conditions using multiple oscillators. By combining four popular technical indicators—RSI (Relative Strength Index), VZO (Volume Zone Oscillator), MFI (Money Flow Index), and CCI (Commodity Channel Index)—this heatmap offers a holistic view of the market's momentum.
The indicator plots two lines: one representing the current chart’s combined momentum score and the other representing a higher timeframe’s (HTF) score, if enabled. Through smooth gradient color transitions and easy-to-read signals, the Momentum Nexus Heatmap allows traders to easily identify potential trend reversals or continuation patterns.
Traders can use this tool to detect overbought or oversold conditions, helping them anticipate possible long or short trade opportunities. The option to use a higher timeframe enhances the flexibility of the indicator for longer-term trend analysis.
🔶 Key Features
Multi-Oscillator Approach: Combines four popular momentum oscillators (RSI, VZO, MFI, and CCI) to generate a weighted score, providing a comprehensive picture of market momentum.
Dynamic Color Heatmap: Utilizes a smooth gradient transition between bullish and bearish colors, reflecting market momentum across different thresholds.
Higher Timeframe (HTF) Compatibility: Includes an optional higher timeframe input that displays a separate score line based on the same momentum metrics, allowing for multi-timeframe analysis.
Customizable Parameters: Adjustable RSI, VZO, MFI, and CCI lengths, as well as overbought and oversold levels, to match the trader’s strategy or preference.
Signal Alerts: Built-in alert conditions for both the current chart and higher timeframe scores, notifying traders when long or short entry signals are triggered.
Buy/Sell Signals: Displays visual signals (▲ and ▼) on the chart when combined scores reach overbought or oversold levels, providing clear entry cues.
User-Friendly Visualization: The heatmap is separated into four sections representing each indicator, providing a transparent view of how each contributes to the overall momentum score.
🔶 Interpreting Indicator:
Combined Score
The indicator generates a combined score by weighing the individual contributions of RSI, VZO, MFI, and CCI. This score ranges from 0 to 100 and is plotted as a line on the chart. Lower values suggest potential oversold conditions, while higher values indicate overbought conditions.
Color Heatmap
The indicator divides the combined score into four distinct sections, each representing one of the underlying momentum oscillators (RSI, VZO, MFI, and CCI). Bullish (greenish) colors indicate upward momentum, while bearish (grayish) colors suggest downward momentum.
Long/Short Signals
When the combined score drops below the oversold threshold (default is 26), a long signal (▲) is displayed on the chart, indicating a potential buying opportunity.
When the combined score exceeds the overbought threshold (default is 74), a short signal (▼) is shown, signaling a potential sell or short opportunity.
Higher Timeframe Analysis
If enabled, the indicator also plots a line representing the combined score for a higher timeframe. This can be used to align lower timeframe trades with the broader trend of a higher timeframe, providing added confirmation.
Signals for long and short entries are also plotted for the higher timeframe when its combined score reaches overbought or oversold levels.
🔶Purpose of Using Multiple Technical Indicators
The combination of RSI, VZO, MFI, and CCI in the Momentum Nexus Heatmap provides a comprehensive approach to analyzing market momentum by leveraging the unique strengths of each indicator. This multi-indicator method minimizes the limitations of using just one tool, resulting in more reliable signals and a clearer understanding of market conditions.
RSI (Relative Strength Index)
RSI contributes by measuring the strength and speed of recent price movements. It helps identify overbought or oversold levels, signaling potential trend reversals or corrections. Its simplicity and effectiveness make it one of the most widely used indicators in technical analysis, contributing to momentum assessment in a straightforward manner.
VZO (Volume Zone Oscillator)
VZO adds the critical element of volume to the analysis. By assessing whether price movements are supported by significant volume, VZO distinguishes between price changes that are driven by real market conviction and those that might be short-lived. It helps validate the strength of a trend or alert the trader to potential weakness when price moves are unsupported by volume.
MFI (Money Flow Index)
MFI enhances the analysis by combining price and volume to gauge money flow into and out of an asset. This indicator provides insight into the participation of large players in the market, showing if money is pouring into or exiting the asset. MFI acts as a volume-weighted version of RSI, giving more weight to volume shifts and helping traders understand the sustainability of price trends.
CCI (Commodity Channel Index)
CCI contributes by measuring how far the price deviates from its statistical average. This helps in identifying extreme conditions where the market might be overextended in either direction. CCI is especially useful for spotting trend reversals or continuations, particularly during market extremes, and for identifying divergence signals.
🔶 Disclaimer
Use with Caution: This indicator is provided for educational and informational purposes only and should not be considered as financial advice. Users should exercise caution and perform their own analysis before making trading decisions based on the indicator's signals.
Not Financial Advice: The information provided by this indicator does not constitute financial advice, and the creator (UAlgo) shall not be held responsible for any trading losses incurred as a result of using this indicator.
Backtesting Recommended: Traders are encouraged to backtest the indicator thoroughly on historical data before using it in live trading to assess its performance and suitability for their trading strategies.
Risk Management: Trading involves inherent risks, and users should implement proper risk management strategies, including but not limited to stop-loss orders and position sizing, to mitigate potential losses.
No Guarantees: The accuracy and reliability of the indicator's signals cannot be guaranteed, as they are based on historical price data and past performance may not be indicative of future results.
Dap's Oscillator- Short Term Momentum and Trend. BINANCE:BTCUSDT BYBIT:BTCUSDT BYBIT:ETHUSDT BINANCE:ETHUSDT
DAP's OSCILLATOR:
WHAT IS IT?
This Oscillator was created to inspire confidence in the short-term trend of traders. This will work very well with a volatility metric (I recommend BBWP by @The_Caretaker)
WHAT IS IT MADE OF?
1. Consists of a series of equations (mainly the difference between simple to exponential moving averages) and Standard deviations of these moving average differences (length equivalent to the length of sampled ma's)
2. These equations are then boiled down through an averaging process array, after averaging the covariants are equated against the variants of the positive side of the array. This is what is presented as the aqua line.
3. The RC average (yellow) is the sma following the DAP'S Oscillator at a specified length
4. The most important part of this indicator is simply the momentum oscillator represented as a green or red line based on the value relative to the Oscillators.
HOW DO I USE THIS?
As I mentioned before mixed with a volatility metric, it should set you up for a good decision based on short-term trends. I would say to be careful for periods of consolidation, with the consolidation the momentum often meets hands with DAP's Oscillator and can cause fake-outs. You want to spot divergences from the price to the momentum difference, as well as room to work down or upward to secure a good entry on a position.
CHEAT CODE'S NOTES:
I appreciate everyone who has boosted my previous scripts, it means a lot. If you want to translate words to pine script onto a chart, feel free to PM me. I would be happy to help bring an indicator to life. I may take a quick break but will be back shortly to help create more cheat codes for yall. Thanks!
-Cheat Code
Ehlers Stochastic CG Oscillator [LazyBear]Another one from Ehlers.
Ehlers likes the idea behind StochRSI so much, he dedicated a full chapter in his book (linked below) on how stoch works with his "superlative" (his words, not mine) indicators. This is stoch of his CG oscillator.
Standard stochastic oscillator uses fixed period for calculations and does not adjust to the constantly changing market cycle length. Stochastic CG Oscillator does not have such a drawback.
Use this like normal stochRSI osc (Uncheck "Fill Osc/Trigger" option, sample chart below)
More info:
- CG oscillator:
- Cybernetic Analysis for Stocks and Futures (Ehlers)
List of my public indicators: bit.ly
List of my app-store indicators: blog.tradingview.com
Volume Oscillator RefurbishedThis is an experimental version of Volume Oscillator.
For more information about Volume Oscillator, please access the link below:
www.tradingview.com
Objective
The script presented here provides some improvements over the original indicator, namely:
Show multiple moving averages;
Color the bars according to the direction of the averages;
Color the bars when reaching predefined limits.
Below is the print comparing with the original indicator:
Thanks and credits:
Volume Oscillator: TradingView
Moving Averages: PineCoders, CrackingCryptocurrency, MightyZinger, Alex Orekhov (everget), alexgrover, paragjyoti2012, Franklin Moormann (cheatcountry)
EMA Oscillator [Alpha Extract]A precision mean reversion analysis tool that combines advanced Z-score methodology with dual threshold systems to identify extreme price deviations from trend equilibrium. Utilizing sophisticated statistical normalization and adaptive percentage-based thresholds, this indicator provides high-probability reversal signals based on standard deviation analysis and dynamic range calculations with institutional-grade accuracy for systematic counter-trend trading opportunities.
🔶 Advanced Statistical Normalization
Calculates normalized distance between price and exponential moving average using rolling standard deviation methodology for consistent interpretation across timeframes. The system applies Z-score transformation to quantify price displacement significance, ensuring statistical validity regardless of market volatility conditions.
// Core EMA and Oscillator Calculation
ema_values = ta.ema(close, ema_period)
oscillator_values = close - ema_values
rolling_std = ta.stdev(oscillator_values, ema_period)
z_score = oscillator_values / rolling_std
🔶 Dual Threshold System
Implements both statistical significance thresholds (±1σ, ±2σ, ±3σ) and percentage-based dynamic thresholds calculated from recent oscillator range extremes. This hybrid approach ensures consistent probability-based signals while adapting to varying market volatility regimes and maintaining signal relevance during structural market changes.
// Statistical Thresholds
mild_threshold = 1.0 // ±1σ (68% confidence)
moderate_threshold = 2.0 // ±2σ (95% confidence)
extreme_threshold = 3.0 // ±3σ (99.7% confidence)
// Percentage-Based Dynamic Thresholds
osc_high = ta.highest(math.abs(z_score), lookback_period)
mild_pct_thresh = osc_high * (mild_pct / 100.0)
moderate_pct_thresh = osc_high * (moderate_pct / 100.0)
extreme_pct_thresh = osc_high * (extreme_pct / 100.0)
🔶 Signal Generation Framework
Triggers buy/sell alerts when Z-score crosses extreme threshold boundaries, indicating statistically significant price deviations with high mean reversion probability. The system generates continuation signals at moderate levels and reversal signals at extreme boundaries with comprehensive alert integration.
// Extreme Signal Detection
sell_signal = ta.crossover(z_score, selected_extreme)
buy_signal = ta.crossunder(z_score, -selected_extreme)
// Dynamic Color Coding
signal_color = z_score >= selected_extreme ? #ff0303 : // Extremely Overbought
z_score >= selected_moderate ? #ff6a6a : // Overbought
z_score >= selected_mild ? #b86456 : // Mildly Overbought
z_score > -selected_mild ? #a1a1a1 : // Neutral
z_score > -selected_moderate ? #01b844 : // Mildly Oversold
z_score > -selected_extreme ? #00ff66 : // Oversold
#00ff66 // Extremely Oversold
🔶 Visual Structure Analysis
Provides a six-tier color gradient system with dynamic background zones indicating mild, moderate, and extreme conditions. The histogram visualization displays Z-score intensity with threshold reference lines and zero-line equilibrium context for precise mean reversion timing.
snapshot
4H
1D
🔶 Adaptive Threshold Selection
Features intelligent threshold switching between statistical significance levels and percentage-based dynamic ranges. The percentage system automatically adjusts to current volatility conditions using configurable lookback periods, while statistical thresholds maintain consistent probability-based signal generation across market cycles.
🔶 Performance Optimization
Utilizes efficient rolling calculations with configurable EMA periods and threshold parameters for optimal performance across all timeframes. The system includes comprehensive alert functionality with customizable notification preferences and visual signal overlay options.
🔶 Market Oscillator Interpretation
Z-score > +3σ indicates statistically significant overbought conditions with high reversal probability, while Z-score < -3σ signals extreme oversold levels suitable for counter-trend entries. Moderate thresholds (±2σ) capture 95% of normal price distributions, making breaches statistically significant for systematic trading approaches.
snapshot
🔶 Intelligent Signal Management
Automatic signal filtering prevents false alerts through extreme threshold crossover requirements, while maintaining sensitivity to genuine statistical deviations. The dual threshold system provides both conservative statistical approaches and adaptive market condition responses for varying trading styles.
Why Choose EMA Oscillator ?
This indicator provides traders with statistically-grounded mean reversion analysis through sophisticated Z-score normalization methodology. By combining traditional statistical significance thresholds with adaptive percentage-based extremes, it maintains effectiveness across varying market conditions while delivering high-probability reversal signals based on quantifiable price displacement from trend equilibrium, enabling systematic counter-trend trading approaches with defined statistical confidence levels and comprehensive risk management parameters.
Dynamic Price Oscillator (Zeiierman)█ Overview
The Dynamic Price Oscillator (DPO) by Zeiierman is designed to gauge the momentum and volatility of asset prices in trading markets. By integrating elements of traditional oscillators with volatility adjustments and Bollinger Bands, the DPO offers a unique approach to understanding market dynamics. This indicator is particularly useful for identifying overbought and oversold conditions, capturing price trends, and detecting potential reversal points.
█ How It Works
The DPO operates by calculating the difference between the current closing price and a moving average of the closing price, adjusted for volatility using the True Range method. This difference is then smoothed over a user-defined period to create the oscillator. Additionally, Bollinger Bands are applied to the oscillator itself, providing visual cues for volatility and potential breakout signals.
█ How to Use
⚪ Trend Confirmation
The DPO can serve as a confirmation tool for existing trends. Traders might look for the oscillator to maintain above or below its mean line to confirm bullish or bearish trends, respectively. A consistent direction in the oscillator's movement alongside price trend can provide additional confidence in the strength and sustainability of the trend.
⚪ Overbought/Oversold Conditions
With the application of Bollinger Bands directly on the oscillator, the DPO can highlight overbought or oversold conditions in a unique manner. When the oscillator moves outside the Bollinger Bands, it signifies an extreme condition.
⚪ Volatility Breakouts
The width of the Bollinger Bands on the oscillator reflects market volatility. Sudden expansions in the bands can indicate a breakout from a consolidation phase, which traders can use to enter trades in the direction of the breakout. Conversely, a contraction suggests a quieter market, which might be a signal for traders to wait or to look for range-bound strategies.
⚪ Momentum Trading
Momentum traders can use the DPO to spot moments when the market momentum is picking up. A sharp move of the oscillator towards either direction, especially when crossing the Bollinger Bands, can indicate the start of a strong price movement.
⚪ Mean Reversion
The DPO is also useful for mean reversion strategies, especially considering its volatility adjustment feature. When the oscillator touches or breaches the Bollinger Bands, it indicates a deviation from the normal price range. Traders might look for opportunities to enter trades anticipating a reversion to the mean.
⚪ Divergence Trading
Divergences between the oscillator and price action can be a powerful signal for reversals. For instance, if the price makes a new high but the oscillator fails to make a corresponding high, it may indicate weakening momentum and a potential reversal. Traders can use these divergence signals to initiate counter-trend moves.
█ Settings
Length: Determines the lookback period for the oscillator and Bollinger Bands calculation. Increasing this value smooths the oscillator and widens the Bollinger Bands, leading to fewer, more significant signals. Decreasing this value makes the oscillator more sensitive to recent price changes, offering more frequent signals but with increased noise.
Smoothing Factor: Adjusts the degree of smoothing applied to the oscillator's calculation. A higher smoothing factor reduces noise, offering clearer trend identification at the cost of signal timeliness. Conversely, a lower smoothing factor increases the oscillator's responsiveness to price movements, which may be useful for short-term trading but at the risk of false signals.
-----------------
Disclaimer
The information contained in my Scripts/Indicators/Ideas/Algos/Systems does not constitute financial advice or a solicitation to buy or sell any securities of any type. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
My Scripts/Indicators/Ideas/Algos/Systems are only for educational purposes!