Rotational Gravity OscillatorMade using elements from two Cheatcountry scripts:
Includes a Bollinger Band for bounds that forms a trend follower based on the 0 point.
Includes CheatCountry color code signals, different color scheme. Bright colors are strong signals, ark are weak, green bull, red bear, the basics.
Switches for Bollinger Band color codes, which can actually be useful signals.
This oscillator can be used for divergences, trends, signal strength, confirmation, volatility readings, you name it.
It is a comparative oscillator, that compares adaptively smoothed, weighted modified Change of Gravity oscillators between 2 symbols and multiple lengths to determine directional momentum as one asset compares to another.
The default uses the Crypto TOTAL market cap to help trade cryptocurrencies. You will notice that BTC will give sell signals in uptrends at times. That is because it is being compared to an index of the total Crypto market cap, and since alt-coins move faster, BTC will lag behind this index.
Give CheatCountry a follow, hes one of the MVPs of Tradingview Pinescripters, constantly giving us access to novel new concepts as they are published by professionals.
在腳本中搜尋"oscillator"
Cumulative Volume OscillatorCVO: Cumulative Volume Oscillator allows you to choose between 3 types of oscillators based on volume indicators:
-OBV (On Balance Volume)
-CVD (Cumulative Volume Delta)
-PVT (Price Volume Trend)
Being a volume based oscillator this indicator allows for the detection of divergences between price action and volume, ideal for predicting reversals.
As an oscillator you can choose the length of the fast & slow EMAs, and a signal line is provided for trend following.
Karobein OscillatorDeveloped by Emily Karobein, the Karobein oscillator is an oscillator that aim to rescale smoothed values with more reactivity in a range of (0,1)
Calculation
The scaling method is similar to the one used in a kalman filter for the kalman gain.
We first average the up/downs x, those calculations are similar to the ones used for calculating the average gain/loss in the relative strength index.
a = ema(src < src ? x : 0,length)
b = ema(src > src ? x : 0,length)
where src is a exponential moving average of length period and x is src/src in the standard calculations, but anything else can be used as long as x > 0 .
Then we rescale the results.
c = x/(x + b)
d = 2*(x/(x + c*a)) - 1
How To Use
It is better to use centerline-cross/breakouts/signal line.
In general when we use something smooth as input in oscillators, breakouts are better than reversals, you can see this with the stochastic and rsi.
So a simple approach could be buying when crossing over 0.8 and selling when crossing under 0.2.
Here is the balance of a strategy using those conditions, length = 50 .
20 trades have been mades since the 29 oct we made 341 pips with eur/usd, of course this backtest was made during good trends period,
this result is not representative of how the strategy work with other conditions/markets.
For any questions/suggestions feel free to contact me
oscillatore EMAOscillator make from 4 ema, Columns give us the trend and signal line can be use to find divergenge or as buy/sell trigger. Colors changes to indicate the relation between price and Ema
Volability is calculate using deviation st.
DecisionPoint Volume Swenlin Trading Oscillator [LazyBear]This is the volume version of "DecisionPoint Breadth Swenlin Trading Oscillator"
DecisionPoint Swenlin Trading Oscillator can be used to identify short-term tops and bottoms. You can read about the interpretation of the signals (& gotchas) in the link below.
I have added support for NYSE / NASD / AMEX and also a combined mode. You can specify custom advancing/declining volume symbols too.
More Info:
DBSTO:
Article: stockcharts.com
List of my public indicators: bit.ly
List of my app-store indicators: blog.tradingview.com
Having both Swenlin Breadth and Volume oscillators help spot the divergences quickly:
Overextension Oscillator [by DanielM]The Overextension Oscillator is an indicator that detects when a market move has extended significantly beyond its typical range, signaling potential areas for a correction or reversal. Unlike traditional oscillators that rely on fixed overbought/oversold levels, this tool dynamically adjusts its thresholds based on historical swing high and swing low movements.
By analyzing all swing points on the chart, the indicator determines the expected range of price movements and identifies when the price extends beyond normal levels. Since every asset has different price behavior and volatility, swing lengths may vary from asset to asset, ensuring that overextension is measured relative to each market's historical price behavior.
How It Works
1️⃣ Swing Detection & Data Collection
The indicator scans all available swing highs and swing lows on the chart to gather a complete dataset of past price fluctuations.
It records the percentage differences between swings to determine how much price typically moves in a given market.
2️⃣ Overextension Calculation
Using the stored swing data, the indicator calculates:
Average Swing Difference – Measures the average percentage difference between swings.
Average Move Percentage – Determines the typical magnitude of price moves within a trend cycle.
These values are used to create dynamic overextension thresholds that adjust based on historical data.
3️⃣ Price Distance & Overextension Measurement
The indicator calculates the distance between the current price and the closest historical swing point. If this distance exceeds the predefined threshold based on past swings, the move is considered overextended. The greater the deviation, the higher the probability of a pullback or short-term reversal.
4️⃣ Buy/Sell Signal Generation
A Buy signal is generated when the price has dropped below an overextended threshold relative to a past swing low.
A Sell signal is generated when the price has risen beyond an overextended threshold relative to a past swing high.
These signals indicate that the price has reached a level where it historically tends to slow down or reverse.
HMA Slope OscillatorA Hull Moving Average (HMA) slope oscillator. It uses a HMA slope to identify up/down trends. Usage is simple: adjust the HMA and signal length according to your needs. Long orders start when the bar changes from under (the zero line) to over the zero line. You can also spot "early" long entries when the bar moves close to the zero line. Short orders should be placed when a red bar appears after blue bars (top of the mountain).
"Play" with the length to find the best settings for your trading strategy.
** I have not added alerts. If you need alerts just let me know and I will be happy to update this indicator.
Weighted Harrell-Davis Quantile Estimator with AD Oscillatorxel_arjona
Licensing:
This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International Copyright (c) 2021 ( CC BY-NC-SA 4.0)
Copyright's & Mentions:
The Gamma Functions & Beta Probability Density Functions C# implementations by the Math.NET Numerics, part of the Math.NET Project.
The Regularized Incomplete (Left) Beta Function C# implementation by the SAMTools, htslib project.
The Weighted Harrell-Davis Quantile estimator; C# & R implementations by Andrey Akinshin.
External PineScript code, methods, support & consultancy by @PineCoders staff with special mention for:
+ "ma sorter ('sort by array' example)- JD" by @Duyck.
+ Porting, mods, compilation and debugging for this script by @XeL_Arjona for the TradingView's @PineCoders community.
I made it an oscillator. Features include normalization, line display, and smoothing. :DDD Enjoy!
(Ive been wanting to do this for a while but I wanted to make the library first but you know what this was fun so there you go its here now)
Stochastic ATR Volatility OscillatorNOTES: As x, k and d use;
21-10-3 for 1 Hour candles
5-4-2 for 4 Hour candles
21-21-3 for 1 Day candles
Yellow plot is the main oscillator. Orange plot, and hlines at 20, 50 and 80 can be used as signal lines.
I personally use hlines as the signal in 1H as it's the best timeframe for the indicator.
If you are in a long position, sell when yellow plot crosses 80 or 50 line downwards;
and buy when the line crosses 20, 50 or 75 upwards while you are not in a trade.
DiNapoli Preferred Stochastic Oscillator [ChuckBanger]In the late 1950s, George Lane developed stochastics, an indicator that measures the relationship between an issue's closing price and its price range over a predetermined period of time. This is Joe DiNapoli version of stochastic oscillator. Use it as you wold use a regular stochastic indicator.
CCT Bollinger Band Oscillator - BB %B UpdateEdit of LazyBear's CCT Bollinger Band Oscillator. Includes changing the scale from 0-100 to 0-1, default length to 20 and line width to 1 to further match BB %B and address some middle line inconsistencies at certain zoom levels
ECO (Blau`s Ergodic Candlestick Oscillator) We call this one the ECO for short, but it will be listed on the indicator list
at W. Blau’s Ergodic Candlestick Oscillator. The ECO is a momentum indicator.
It is based on candlestick bars, and takes into account the size and direction
of the candlestick "body". We have found it to be a very good momentum indicator,
and especially smooth, because it is unaffected by gaps in price, unlike many other
momentum indicators.
We like to use this indicator as an additional trend confirmation tool, or as an
alternate trend definition tool, in place of a weekly indicator. The simplest way
of using the indicator is simply to define the trend based on which side of the "0"
line the indicator is located on. If the indicator is above "0", then the trend is up.
If the indicator is below "0" then the trend is down. You can add an additional
qualifier by noting the "slope" of the indicator, and the crossing points of the slow
and fast lines. Some like to use the slope alone to define trend direction. If the
lines are sloping upward, the trend is up. Alternately, if the lines are sloping
downward, the trend is down. In this view, the point where the lines "cross" is the
point where the trend changes.
When the ECO is below the "0" line, the trend is down, and we are qualified only to
sell on new short signals from the Hi-Lo Activator. In other words, when the ECO is
above 0, we are not allowed to take short signals, and when the ECO is below 0, we
are not allowed to take long signals.
TheLark: Directional Movement Index OscillatorA modified DMI, This turns the standard DMI into an Oscillator. The DMI cross signal is the same, but as an OSC you get the added benefits or finding divergences, etc. The added WIlder's Average Line (blue) can help you see if a short term trend is getting less interesting.
OBV & AD Oscillators with Dual Smoothing OptionsOn Balance Volume and Accumulation/Distribution
Overlaid into 1 and then some,
Now it is an oscillator!
3 customizable moving average types
- Ehlers Deviation Scaled Moving Average
- Volatility Dynamic Moving Average
- Simple Moving Average
Each with customizable periods
And with the ability to overlay a second set too
Default Settings have a longer period MA of 377 using Ehlers DSMA to better capture the standard view of OBV and A/D.
An extra overlay of a shorter period using a Volatility DMA uses Average True Range with its own custom settings, seeks to act more as an RSI
SynchroTrend Oscillator (STO) [PhenLabs]📊 SynchroTrend Oscillator
Version: PineScript™ v5
📌 Description
The SynchroTrend Oscillator (STO) is a multi-timeframe synchronization tool that combines trend information from three distinct timeframes into a single, easy-to-interpret oscillator ranging from -100 to +100.
This indicator solves the common problem of having to analyze multiple timeframe charts separately by consolidating trend direction and strength across different time horizons. The STO helps traders identify when markets are truly synchronized across timeframes, potentially indicating stronger trend conditions and higher probability trading opportunities.
Using either Moving Average crossovers or RSI analysis as the trend definition metric, the STO provides a comprehensive view of market structure that adapts to various trading strategies and market conditions.
🚀 Points of Innovation
Triple-timeframe synchronization in a single view eliminates chart switching
Dual trend detection methods (MA vs Price or RSI) for flexibility across different markets
Dynamic color intensity that automatically increases with signal strength
Scaled oscillator format (-100 to +100) for intuitive trend strength interpretation
Customizable signal thresholds to match your risk tolerance and trading style
Visual alerts when markets reach full synchronization states
🔧 Core Components
Trend Scoring System: Calculates a binary score (+1, -1, or 0) for each timeframe based on selected metrics, providing clear trend direction
Multi-Timeframe Synchronization: Combines and scales trend scores from all three timeframes into a single oscillator
Dynamic Visualization: Adjusts color transparency based on signal strength, creating an intuitive visual guide
Threshold System: Provides customizable levels for identifying potentially significant trading opportunities
🔥 Key Features
Triple Timeframe Analysis: Synchronizes three user-defined timeframes (default: 60min, 15min, 5min) into one view
Dual Trend Detection Methods: Choose between Moving Average vs Price or RSI-based trend determination
Adjustable Signal Smoothing: Apply EMA, SMA, or no smoothing to the oscillator output for your preferred signal responsiveness
Dynamic Color Intensity: Colors become more vibrant as signal strength increases, helping identify strongest setups
Customizable Thresholds: Set your own buy/sell threshold levels to match your trading strategy
Comprehensive Alerts: Six different alert conditions for crossing thresholds, zero line, and full synchronization states
🎨 Visualization
Oscillator Line: The main line showing the synchronized trend value from -100 to +100
Dynamic Fill: Area between oscillator and zero line changes transparency based on signal strength
Threshold Lines: Optional dotted lines indicating buy/sell thresholds for visual reference
Color Coding: Green for bullish synchronization, red for bearish synchronization
📖 Usage Guidelines
Timeframe Settings
Timeframe 1: Default: 60 (1 hour) - Primary higher timeframe for trend definition
Timeframe 2: Default: 15 (15 minutes) - Intermediate timeframe for trend definition
Timeframe 3: Default: 5 (5 minutes) - Lower timeframe for trend definition
Trend Calculation Settings
Trend Definition Metric: Default: “MA vs Price” - Method used to determine trend on each timeframe
MA Type: Default: EMA - Moving Average type when using MA vs Price method
MA Length: Default: 21 - Moving Average period when using MA vs Price method
RSI Length: Default: 14 - RSI period when using RSI method
RSI Source: Default: close - Price data source for RSI calculation
Oscillator Settings
Smoothing Type: Default: SMA - Applies smoothing to the final oscillator
Smoothing Length: Default: 5 - Period for the smoothing function
Visual & Threshold Settings
Up/Down Colors: Customize colors for bullish and bearish signals
Transparency Range: Control how transparency changes with signal strength
Line Width: Adjust oscillator line thickness
Buy/Sell Thresholds: Set levels for potential entry/exit signals
✅ Best Use Cases
Trend confirmation across multiple timeframes
Finding high-probability entry points when all timeframes align
Early detection of potential trend reversals
Filtering trade signals from other indicators
Market structure analysis
Identifying potential divergences between timeframes
⚠️ Limitations
Like all indicators, can produce false signals during choppy or ranging markets
Works best in trending market conditions
Should not be used in isolation for trading decisions
Past performance is not indicative of future results
May require different settings for different markets or instruments
💡 What Makes This Unique
Combines three timeframes in a single visualization without requiring multiple chart windows
Dynamic transparency feature that automatically emphasizes stronger signals
Flexible trend definition methods suitable for different market conditions
Visual system that makes multi-timeframe analysis intuitive and accessible
🔬 How It Works
1. Trend Evaluation:
For each timeframe, the indicator calculates a trend score (+1, -1, or 0) using either:
MA vs Price: Comparing close price to a moving average
RSI: Determining if RSI is above or below 50
2. Score Aggregation:
The three trend scores are combined and then scaled to a range of -100 to +100
A value of +100 indicates all timeframes show bullish conditions
A value of -100 indicates all timeframes show bearish conditions
Values in between indicate varying degrees of alignment
3. Signal Processing:
The raw oscillator value can be smoothed using EMA, SMA, or left unsmoothed
The final value determines line color, fill color, and transparency settings
Threshold levels are applied to identify potential trading opportunities
💡 Note:
The SynchroTrend Oscillator is most effective when used as part of a comprehensive trading strategy that includes proper risk management techniques. For best results, consider using the oscillator in conjunction with support/resistance levels, price action analysis, and other complementary indicators that align with your trading style.
Realized Price Oscillator [InvestorUnknown]Overview
The Realized Price Oscillator is a fundamental analysis tool designed to assess Bitcoin's price dynamics relative to its realized price. The indicator calculates various metrics using data from the realized market capitalization and total supply. It applies normalization techniques to scale values within a specified range, helping investors identify overbought or oversold conditions over the long time horizon. The oscillator also features DCA-based signals to assist in strategic market entry and exit.
Key Features
1. Normalization and Scaling:
The indicator scales values using a limit that can be adjusted for decimal precision (Limit). It allows for both positive and negative values, providing flexibility in analysis.
Decay functionality is included to progressively reduce the extreme values over time, ensuring recent data impacts the oscillator more than older data.
f_rescale(float value, float min, float max, float limit, bool negatives) =>
((limit * (negatives ? 2 : 1)) * (value - min) / (max - min)) - (negatives ? limit : 0)
2. Realized Price Oscillator Calculation:
Realized Price Oscillator is computed using logarithmic differences between the open, high, low, and close prices and the realized price. This helps in identifying how the current market price compares with the average cost basis of the Bitcoin supply.
f_realized_price_oscillator(float realized_price) =>
rpo_o = math.log(open / realized_price)
rpo_h = math.log(high / realized_price)
rpo_l = math.log(low / realized_price)
rpo_c = math.log(close / realized_price)
3. Oscillator Normalization:
The normalized oscillator calculates the range between the maximum and minimum values over time. It adjusts the oscillator values based on these bounds, considering a decay factor. This normalized range assists in consistent signal generation.
normalized_oscillator(float x, float b) =>
float oscillator = b
var float min = na
var float max = na
if (oscillator > max or na(max)) and time >= normalization_start_date
max := oscillator
if (min > oscillator or na(min)) and time >= normalization_start_date
min := oscillator
if time >= normalization_start_date
max := max * decay
min := min * decay
normalized_oscillator = f_rescale(x, min, max, lim, neg)
4. Dollar-Cost Averaging (DCA) Signals:
DCA-based signals are generated using user-defined thresholds (DCA IN and DCA OUT). The oscillator triggers buy signals when the normalized low value falls below the DCA IN threshold and sell signals when the normalized high value exceeds the DCA OUT threshold.
5. Visual Representation:
The indicator plots candlestick representations of the normalized Realized Price Oscillator values (open, high, low, close) over time, starting from a specified date (plot_start_date).
Colors are dynamically adjusted using a gradient to represent the state of the oscillator, ranging from green (buy zone) to red (sell zone). Background and bar colors also change based on DCA conditions.
How It Works
Data Sourcing: Realized price data is sourced using Bitcoin’s realized market cap (BTC_MARKETCAPREAL) and total supply (BTC_SUPPLY).
Realized Price Oscillator Metrics: Logarithmic differences between price and realized price are computed to generate Realized Price Oscillator values for open, high, low, and close.
Normalization: The indicator rescales the oscillator values based on a defined limit, adjusting for negative values if allowed. It employs a decay factor to reduce the influence of historical extremes.
Conclusion
The Realized Price Oscillator is a sophisticated tool that combines market price analysis with realized price metrics to offer a robust framework for understanding Bitcoin's valuation. By leveraging normalization techniques and DCA thresholds, it provides actionable insights for long-term investing strategies.
Bitcoin Power Law Oscillator [InvestorUnknown]The Bitcoin Power Law Oscillator is a specialized tool designed for long-term mean-reversion analysis of Bitcoin's price relative to a theoretical midline derived from the Bitcoin Power Law model (made by capriole_charles). This oscillator helps investors identify whether Bitcoin is currently overbought, oversold, or near its fair value according to this mathematical model.
Key Features:
Power Law Model Integration: The oscillator is based on the midline of the Bitcoin Power Law, which is calculated using regression coefficients (A and B) applied to the logarithm of the number of days since Bitcoin’s inception. This midline represents a theoretical fair value for Bitcoin over time.
Midline Distance Calculation: The distance between Bitcoin’s current price and the Power Law midline is computed as a percentage, indicating how far above or below the price is from this theoretical value.
float a = input.float (-16.98212206, 'Regression Coef. A', group = "Power Law Settings")
float b = input.float (5.83430649, 'Regression Coef. B', group = "Power Law Settings")
normalization_start_date = timestamp(2011,1,1)
calculation_start_date = time == timestamp(2010, 7, 19, 0, 0) // First BLX Bitcoin Date
int days_since = request.security('BNC:BLX', 'D', ta.barssince(calculation_start_date))
bar() =>
= request.security('BNC:BLX', 'D', bar())
int offset = 564 // days between 2009/1/1 and "calculation_start_date"
int days = days_since + offset
float e = a + b * math.log10(days)
float y = math.pow(10, e)
float midline_distance = math.round((y / btc_close - 1.0) * 100)
Oscillator Normalization: The raw distance is converted into a normalized oscillator, which fluctuates between -1 and 1. This normalization adjusts the oscillator to account for historical extremes, making it easier to compare current conditions with past market behavior.
float oscillator = -midline_distance
var float min = na
var float max = na
if (oscillator > max or na(max)) and time >= normalization_start_date
max := oscillator
if (min > oscillator or na(min)) and time >= normalization_start_date
min := oscillator
rescale(float value, float min, float max) =>
(2 * (value - min) / (max - min)) - 1
normalized_oscillator = rescale(oscillator, min, max)
Overbought/Oversold Identification: The oscillator provides a clear visual representation, where values near 1 suggest Bitcoin is overbought, and values near -1 indicate it is oversold. This can help identify potential reversal points or areas of significant market imbalance.
Optional Moving Average: Users can overlay a moving average (either SMA or EMA) on the oscillator to smooth out short-term fluctuations and focus on longer-term trends. This is particularly useful for confirming trend reversals or persistent overbought/oversold conditions.
This indicator is particularly useful for long-term Bitcoin investors who wish to gauge the market's mean-reversion tendencies based on a well-established theoretical model. By focusing on the Power Law’s midline, users can gain insights into whether Bitcoin’s current price deviates significantly from what historical trends would suggest as a fair value.
Normalised T3 Oscillator [BackQuant]Normalised T3 Oscillator
The Normalised T3 Oscillator is an technical indicator designed to provide traders with a refined measure of market momentum by normalizing the T3 Moving Average. This tool was developed to enhance trading decisions by smoothing price data and reducing market noise, allowing for clearer trend recognition and potential signal generation. Below is a detailed breakdown of the Normalised T3 Oscillator, its methodology, and its application in trading scenarios.
1. Conceptual Foundation and Definition of T3
The T3 Moving Average, originally proposed by Tim Tillson, is renowned for its smoothness and responsiveness, achieved through a combination of multiple Exponential Moving Averages and a volume factor. The Normalised T3 Oscillator extends this concept by normalizing these values to oscillate around a central zero line, which aids in highlighting overbought and oversold conditions.
2. Normalization Process
Normalization in this context refers to the adjustment of the T3 values to ensure that the oscillator provides a standard range of output. This is accomplished by calculating the lowest and highest values of the T3 over a user-defined period and scaling the output between -0.5 to +0.5. This process not only aids in standardizing the indicator across different securities and time frames but also enhances comparative analysis.
3. Integration of the Oscillator and Moving Average
A unique feature of the Normalised T3 Oscillator is the inclusion of a secondary smoothing mechanism via a moving average of the oscillator itself, selectable from various types such as SMA, EMA, and more. This moving average acts as a signal line, providing potential buy or sell triggers when the oscillator crosses this line, thus offering dual layers of analysis—momentum and trend confirmation.
4. Visualization and User Interaction
The indicator is designed with user interaction in mind, featuring customizable parameters such as the length of the T3, normalization period, and type of moving average used for signals. Additionally, the oscillator is plotted with a color-coded scheme that visually represents different strength levels of the market conditions, enhancing readability and quick decision-making.
5. Practical Applications and Strategy Integration
Traders can leverage the Normalised T3 Oscillator in various trading strategies, including trend following, counter-trend plays, and as a component of a broader trading system. It is particularly useful in identifying turning points in the market or confirming ongoing trends. The clear visualization and customizable nature of the oscillator facilitate its adaptation to different trading styles and market environments.
6. Advanced Features and Customization
Further enhancing its utility, the indicator includes options such as painting candles according to the trend, showing static levels for quick reference, and alerts for crossover and crossunder events, which can be integrated into automated trading systems. These features allow for a high degree of personalization, enabling traders to mold the tool according to their specific trading preferences and risk management requirements.
7. Theoretical Justification and Empirical Usage
The use of the T3 smoothing mechanism combined with normalization is theoretically sound, aiming to reduce lag and false signals often associated with traditional moving averages. The practical effectiveness of the Normalised T3 Oscillator should be validated through rigorous backtesting and adjustment of parameters to match historical market conditions and volatility.
8. Conclusion and Utility in Market Analysis
Overall, the Normalised T3 Oscillator by BackQuant stands as a sophisticated tool for market analysis, providing traders with a dynamic and adaptable approach to gauging market momentum. Its development is rooted in the understanding of technical nuances and the demand for a more stable, responsive, and customizable trading indicator.
Thus following all of the key points here are some sample backtests on the 1D Chart
Disclaimer: Backtests are based off past results, and are not indicative of the future.
INDEX:BTCUSD
INDEX:ETHUSD
BINANCE:SOLUSD
Bilateral Stochastic Oscillator - For The Sake Of EfficiencyIntroduction
The stochastic oscillator is a feature scaling method commonly used in technical analysis, this method is the same as the running min-max normalization method except that the stochastic oscillator is in a range of (0,100) while min-max normalization is in a range of (0,1). The stochastic oscillator in itself is efficient since it tell's us when the price reached its highest/lowest or crossed this average, however there could be ways to further develop the stochastic oscillator, this is why i propose this new indicator that aim to show all the information a classical stochastic oscillator would give with some additional features.
Min-Max Derivation
The min-max normalization of the price is calculated as follow : (price - min)/(max - min) , this calculation is efficient but there is alternates forms such as :
price - (max - min) - min/(max - min)
This alternate form is the one i chosen to make the indicator except that both range (max - min) are smoothed with a simple moving average, there are also additional modifications that you can see on the code.
The Indicator
The indicator return two main lines, in blue the bull line who show the buying force and in red the bear line who show the selling force.
An orange line show the signal line who represent the moving average of the max(bull,bear), this line aim to show possible exit/reversals points for the current trend.
Length control the highest/lowest period as well as the smoothing amount, signal length control the moving average period of the signal line, the pre-filtering setting indicate which smoothing method will be used to smooth the input source before applying normalization.
The default pre-filtering method is the sma.
The ema method is slightly faster as you can see above.
The triangular moving average is the moving average of another moving average, the impulse response of this filter is a triangular function hence its name. This moving average is really smooth.
The lsma or least squares moving average is the fastest moving average used in this indicator, this filter try to best fit a linear function to the data in a certain window by using the least squares method.
No filtering will use the source price without prior smoothing for the indicator calculation.
Relationship With The Stochastic Oscillator
The crosses between the bull and bear line mean that the stochastic oscillator crossed the 50 level. When the Bull line is equal to 0 this mean that the stochastic oscillator is equal to 0 while a bear line equal to 0 mean a stochastic oscillator equal to 100.
The indicator and below a stochastic oscillator of both period 100
Using Levels
Unlike a stochastic oscillator who would clip at the 0 and 100 level the proposed indicator is not heavily constrained in a range like the stochastic oscillator, this mean that you can apply levels to trigger signals
Possible levels could be 1,2,3... even if the indicator rarely go over 3.
Its then possible to create strategies using such levels as support or resistance one.
Conclusion
I've showed a modified stochastic oscillator who aim to show additional information to the user while keeping all the information a classical stochastic oscillator would give. The proposed indicator is no longer constrained in an hard range and posses more liberty to exploit its scale which in return allow to create strategies based on levels.
For pinescript users what you can learn from this is that alternates forms of specific formulas can be extremely interesting to modify, changes can be really surprising so if you are feeling stuck, modifying alternates forms of know indicators can give great results, use tools such as sympy gamma to get alternates forms of formulas.
Thanks for reading !
If you are looking for something or just want to say thanks try to pm me :)
FEDFUNDS Rate Divergence Oscillator [BackQuant]FEDFUNDS Rate Divergence Oscillator
1. Concept and Rationale
The United States Federal Funds Rate is the anchor around which global dollar liquidity and risk-free yield expectations revolve. When the Fed hikes, borrowing costs rise, liquidity tightens and most risk assets encounter head-winds. When it cuts, liquidity expands, speculative appetite often recovers. Bitcoin, a 24-hour permissionless asset sometimes described as “digital gold with venture-capital-like convexity,” is particularly sensitive to macro-liquidity swings.
The FED Divergence Oscillator quantifies the behavioural gap between short-term monetary policy (proxied by the effective Fed Funds Rate) and Bitcoin’s own percentage price change. By converting each series into identical rate-of-change units, subtracting them, then optionally smoothing the result, the script produces a single bounded-yet-dynamic line that tells you, at a glance, whether Bitcoin is outperforming or underperforming the policy backdrop—and by how much.
2. Data Pipeline
• Fed Funds Rate – Pulled directly from the FRED database via the ticker “FRED:FEDFUNDS,” sampled at daily frequency to synchronise with crypto closes.
• Bitcoin Price – By default the script forces a daily timeframe so that both series share time alignment, although you can disable that and plot the oscillator on intraday charts if you prefer.
• User Source Flexibility – The BTC series is not hard-wired; you can select any exchange-specific symbol or even swap BTC for another crypto or risk asset whose interaction with the Fed rate you wish to study.
3. Math under the Hood
(1) Rate of Change (ROC) – Both the Fed rate and BTC close are converted to percent return over a user-chosen lookback (default 30 bars). This means a cut from 5.25 percent to 5.00 percent feeds in as –4.76 percent, while a climb from 25 000 to 30 000 USD in BTC over the same window converts to +20 percent.
(2) Divergence Construction – The script subtracts the Fed ROC from the BTC ROC. Positive values show BTC appreciating faster than policy is tightening (or falling slower than the rate is cutting); negative values show the opposite.
(3) Optional Smoothing – Macro series are noisy. Toggle “Apply Smoothing” to calm the line with your preferred moving-average flavour: SMA, EMA, DEMA, TEMA, RMA, WMA or Hull. The default EMA-25 removes day-to-day whips while keeping turning points alive.
(4) Dynamic Colour Mapping – Rather than using a single hue, the oscillator line employs a gradient where deep greens represent strong bullish divergence and dark reds flag sharp bearish divergence. This heat-map approach lets you gauge intensity without squinting at numbers.
(5) Threshold Grid – Five horizontal guides create a structured regime map:
• Lower Extreme (–50 pct) and Upper Extreme (+50 pct) identify panic capitulations and euphoria blow-offs.
• Oversold (–20 pct) and Overbought (+20 pct) act as early warning alarms.
• Zero Line demarcates neutral alignment.
4. Chart Furniture and User Interface
• Oscillator fill with a secondary DEMA-30 “shader” offers depth perception: fat ribbons often precede high-volatility macro shifts.
• Optional bar-colouring paints candles green when the oscillator is above zero and red below, handy for visual correlation.
• Background tints when the line breaches extreme zones, making macro inflection weeks pop out in the replay bar.
• Everything—line width, thresholds, colours—can be customised so the indicator blends into any template.
5. Interpretation Guide
Macro Liquidity Pulse
• When the oscillator spends weeks above +20 while the Fed is still raising rates, Bitcoin is signalling liquidity tolerance or an anticipatory pivot view. That condition often marks the embryonic phase of major bull cycles (e.g., March 2020 rebound).
• Sustained prints below –20 while the Fed is already dovish indicate risk aversion or idiosyncratic crypto stress—think exchange scandals or broad flight to safety.
Regime Transition Signals
• Bullish cross through zero after a long sub-zero stint shows Bitcoin regaining upward escape velocity versus policy.
• Bearish cross under zero during a hiking cycle tells you monetary tightening has finally started to bite.
Momentum Exhaustion and Mean-Reversion
• Touches of +50 (or –50) come rarely; they are statistically stretched events. Fade strategies either taking profits or hedging have historically enjoyed positive expectancy.
• Inside-bar candlestick patterns or lower-timeframe bearish engulfings simultaneously with an extreme overbought print make high-probability short scalp setups, especially near weekly resistance. The same logic mirrors for oversold.
Pair Trading / Relative Value
• Combine the oscillator with spreads like BTC versus Nasdaq 100. When both the FED Divergence oscillator and the BTC–NDQ relative-strength line roll south together, the cross-asset confirmation amplifies conviction in a mean-reversion short.
• Swap BTC for miners, altcoins or high-beta equities to test who is the divergence leader.
Event-Driven Tactics
• FOMC days: plot the oscillator on an hourly chart (disable ‘Force Daily TF’). Watch for micro-structural spikes that resolve in the first hour after the statement; rapid flips across zero can front-run post-FOMC swings.
• CPI and NFP prints: extremes reached into the release often mean positioning is one-sided. A reversion toward neutral in the first 24 hours is common.
6. Alerts Suite
Pre-bundled conditions let you automate workflows:
• Bullish / Bearish zero crosses – queue spot or futures entries.
• Standard OB / OS – notify for first contact with actionable zones.
• Extreme OB / OS – prime time to review hedges, take profits or build contrarian swing positions.
7. Parameter Playground
• Shorten ROC Lookback to 14 for tactical traders; lengthen to 90 for macro investors.
• Raise extreme thresholds (for example ±80) when plotting on altcoins that exhibit higher volatility than BTC.
• Try HMA smoothing for responsive yet smooth curves on intraday charts.
• Colour-blind users can easily swap bull and bear palette selections for preferred contrasts.
8. Limitations and Best Practices
• The Fed Funds series is step-wise; it only changes on meeting days. Rapid BTC oscillations in between may dominate the calculation. Keep that perspective when interpreting very high-frequency signals.
• Divergence does not equal causation. Crypto-native catalysts (ETF approvals, hack headlines) can overwhelm macro links temporarily.
• Use in conjunction with classical confirmation tools—order-flow footprints, market-profile ledges, or simple price action to avoid “pure-indicator” traps.
9. Final Thoughts
The FEDFUNDS Rate Divergence Oscillator distills an entire macro narrative monetary policy versus risk sentiment into a single colourful heartbeat. It will not magically predict every pivot, yet it excels at framing market context, spotting stretches and timing regime changes. Treat it as a strategic compass rather than a tactical sniper scope, combine it with sound risk management and multi-factor confirmation, and you will possess a robust edge anchored in the world’s most influential interest-rate benchmark.
Trade consciously, stay adaptive, and let the policy-price tension guide your roadmap.
Chaikin Oscillator Multi-Timeframe BiasOverview
Chaikin Oscillator Multi-Timeframe Bias is an indicator designed to help traders align with institutional buying and selling activity by analyzing Chaikin Oscillator signals across two timeframes—a higher timeframe (HTF) for trend bias and a lower timeframe (LTF) for timing. This dual-confirmation model helps traders avoid false breakouts and trade in sync with market momentum and accumulation or distribution dynamics.
Core Concepts
The Chaikin Oscillator measures the momentum of accumulation and distribution based on price and volume. Institutional traders typically accumulate slowly and steadily, and the Chaikin Oscillator helps reveal this pattern. Multi-timeframe analysis confirms whether short-term price action supports the longer-term trend. This indicator applies a smoothing EMA to each Chaikin Oscillator to help confirm direction and reduce noise.
How to Use the Indicator
Start by selecting your timeframes. The higher timeframe, set by default to Daily, establishes the broader directional bias. The lower timeframe, defaulted to 30 minutes, identifies short-term momentum confirmation. The indicator displays one of five labels: CALL Bias, CALL Wait, PUT Bias, PUT Wait, or NEUTRAL. CALL Bias means both HTF and LTF are bullish, signaling a potential opportunity for long or call trades. CALL Wait indicates that the HTF is bullish, but the LTF hasn’t confirmed yet. PUT Bias signals bearish alignment in both HTF and LTF, while PUT Wait indicates HTF is bearish and LTF has not yet confirmed. NEUTRAL means there is no alignment between timeframes and directional trades are not advised.
Interpretation
When the Chaikin Oscillator is above zero and also above its EMA, this indicates bullish momentum and accumulation. When the oscillator is below zero and below its EMA, it suggests bearish momentum and distribution. Bias labels identify when both timeframes are aligned for a higher-probability directional setup. When a “Wait” label appears, it means one timeframe has confirmed bias but the other has not, suggesting the trader should monitor closely but delay entry.
Notes
This indicator includes alerts for both CALL and PUT bias confirmation when both timeframes are aligned. It works on all asset classes, including stocks, ETFs, cryptocurrencies, and futures. Timeframes are fully customizable, and users may explore combinations such as 1D and 1H, or 4H and 15M depending on their strategy. For best results, consider pairing this tool with volume, volatility, or price action analysis.
Regime Classifier Oscillator (AiBitcoinTrend)The Regime Classifier Oscillator (AiBitcoinTrend) is an advanced tool for understanding market structure and detecting dynamic price regimes. By combining filtered price trends, clustering algorithms, and an adaptive oscillator, it provides traders with detailed insights into market phases, including accumulation, distribution, advancement, and decline.
This innovative tool simplifies market regime classification, enabling traders to align their strategies with evolving market conditions effectively.
👽 What is a Regime Classifier, and Why is it Useful?
A Regime Classifier is a concept in financial analysis that identifies distinct market conditions or "regimes" based on price behavior and volatility. These regimes often correspond to specific phases of the market, such as trends, consolidations, or periods of high or low volatility. By classifying these regimes, traders and analysts can better understand the underlying market dynamics, allowing them to adapt their strategies to suit prevailing conditions.
👽 Common Uses in Finance
Risk Management: Identifying high-volatility regimes helps traders adjust position sizes or hedge risks.
Strategy Optimization: Traders tailor their approaches—trend-following strategies in trending regimes, mean-reversion strategies in consolidations.
Forecasting: Understanding the current regime aids in predicting potential transitions, such as a shift from accumulation to an upward breakout.
Portfolio Allocation: Investors allocate assets differently based on market regimes, such as increasing cash positions in high-volatility environments.
👽 Why It’s Important
Markets behave differently under varying conditions. A regime classifier provides a structured way to analyze these changes, offering a systematic approach to decision-making. This improves both accuracy and confidence in navigating diverse market scenarios.
👽 How We Implemented the Regime Classifier in This Indicator
The Regime Classifier Oscillator takes the foundational concept of market regime classification and enhances it with advanced computational techniques, making it highly adaptive.
👾 Median Filtering: We smooth price data using a custom median filter to identify significant trends while eliminating noise. This establishes a baseline for price movement analysis.
👾 Clustering Model: Using clustering techniques, the indicator classifies volatility and price trends into distinct regimes:
Advance: Strong upward trends with low volatility.
Decline: Downward trends marked by high volatility.
Accumulation: Consolidation phases with subdued volatility.
Distribution: Topping or bottoming patterns with elevated volatility.
This classification leverages historical price data to refine cluster boundaries dynamically, ensuring adaptive and accurate detection of market states.
Volatility Classification: Price volatility is analyzed through rolling windows, separating data into high and low volatility clusters using distance-based assignments.
Price Trends: The interaction of price levels with the filtered trendline and volatility clusters determines whether the market is advancing, declining, accumulating, or distributing.
👽 Dynamic Cycle Oscillator (DCO):
Captures cyclic behavior and overlays it with smoothed oscillations, providing real-time feedback on price momentum and potential reversals.
Regime Visualization:
Regimes are displayed with intuitive labels and background colors, offering clear, actionable insights directly on the chart.
👽 Why This Implementation Stands Out
Dynamic and Adaptive: The clustering and refit mechanisms adapt to changing market conditions, ensuring relevance across different asset classes and timeframes.
Comprehensive Insights: By combining price trends, volatility, and cyclic behaviors, the indicator provides a holistic view of the market.
This implementation bridges the gap between theoretical regime classification and practical trading needs, making it a powerful tool for both novice and experienced traders.
👽 Applications
👾 Regime-Based Trading Strategies
Traders can use the regime classifications to adapt their strategies effectively:
Advance & Accumulation: Favorable for entering or holding long positions.
Decline & Distribution: Opportunities for short positions or risk management.
👾 Oscillator Insights for Trend Analysis
Overbought/oversold conditions: Early warning of potential reversals.
Dynamic trends: Highlights the strength of price momentum.
👽 Indicator Settings
👾 Filter and Classification Settings
Filter Window Size: Controls trend detection sensitivity.
ATR Lookback: Adjusts the threshold for regime classification.
Clustering Window & Refit Interval: Fine-tunes regime accuracy.
👾 Oscillator Settings
Dynamic Cycle Oscillator Lookback: Defines the sensitivity of cycle detection.
Smoothing Factor: Balances responsiveness and stability.
Disclaimer: This information is for entertainment purposes only and does not constitute financial advice. Please consult with a qualified financial advisor before making any investment decisions.
Exposure Oscillator (Cumulative 0 to ±100%)
Exposure Oscillator (Cumulative 0 to ±100%)
This Pine Script indicator plots an "Exposure Oscillator" on the chart, which tracks the cumulative market exposure from a range of technical buy and sell signals. The exposure is measured on a scale from -100% (maximum short exposure) to +100% (maximum long exposure), helping traders assess the strength of their position in the market. It provides an intuitive visual cue to aid decision-making for trend-following strategies.
Buy Signals (Increase Exposure Score by +10%)
Buy Signal 1 (Cross Above 21 EMA):
This signal is triggered when the price crosses above the 21-period Exponential Moving Average (EMA), where the current bar closes above the EMA21, and the previous bar closed below the EMA21. This indicates a potential upward price movement as the market shifts into a bullish trend.
buySignal1 = ta.crossover(close, ema21)
Buy Signal 2 (Trending Above 21 EMA):
This signal is triggered when the price closes above the 21-period EMA for each of the last 5 bars, indicating a sustained bullish trend. It confirms that the price is consistently above the EMA21 for a significant period.
buySignal2 = ta.barssince(close <= ema21) > 5
Buy Signal 3 (Living Above 21 EMA):
This signal is triggered when the price has closed above the 21-period EMA for each of the last 15 bars, demonstrating a strong, prolonged uptrend.
buySignal3 = ta.barssince(close <= ema21) > 15
Buy Signal 4 (Cross Above 50 SMA):
This signal is triggered when the price crosses above the 50-period Simple Moving Average (SMA), where the current bar closes above the 50 SMA, and the previous bar closed below it. It indicates a shift toward bullish momentum.
buySignal4 = ta.crossover(close, sma50)
Buy Signal 5 (Cross Above 200 SMA):
This signal is triggered when the price crosses above the 200-period Simple Moving Average (SMA), where the current bar closes above the 200 SMA, and the previous bar closed below it. This suggests a long-term bullish trend.
buySignal5 = ta.crossover(close, sma200)
Buy Signal 6 (Low Above 50 SMA):
This signal is true when the lowest price of the current bar is above the 50-period SMA, indicating strong bullish pressure as the price maintains itself above the moving average.
buySignal6 = low > sma50
Buy Signal 7 (Accumulation Day):
An accumulation day occurs when the closing price is in the upper half of the daily range (greater than 50%) and the volume is larger than the previous bar's volume, suggesting buying pressure and accumulation.
buySignal7 = (close - low) / (high - low) > 0.5 and volume > volume
Buy Signal 8 (Higher High):
This signal occurs when the current bar’s high exceeds the highest high of the previous 14 bars, indicating a breakout or strong upward momentum.
buySignal8 = high > ta.highest(high, 14)
Buy Signal 9 (Key Reversal Bar):
This signal is generated when the stock opens below the low of the previous bar but rallies to close above the previous bar’s high, signaling a potential reversal from bearish to bullish.
buySignal9 = open < low and close > high
Buy Signal 10 (Distribution Day Fall Off):
This signal is triggered when a distribution day (a day with high volume and a close near the low of the range) "falls off" the rolling 25-bar period, indicating the end of a bearish trend or selling pressure.
buySignal10 = ta.barssince(close < sma50 and close < sma50) > 25
Sell Signals (Decrease Exposure Score by -10%)
Sell Signal 1 (Cross Below 21 EMA):
This signal is triggered when the price crosses below the 21-period Exponential Moving Average (EMA), where the current bar closes below the EMA21, and the previous bar closed above it. It suggests that the market may be shifting from a bullish trend to a bearish trend.
sellSignal1 = ta.crossunder(close, ema21)
Sell Signal 2 (Trending Below 21 EMA):
This signal is triggered when the price closes below the 21-period EMA for each of the last 5 bars, indicating a sustained bearish trend.
sellSignal2 = ta.barssince(close >= ema21) > 5
Sell Signal 3 (Living Below 21 EMA):
This signal is triggered when the price has closed below the 21-period EMA for each of the last 15 bars, suggesting a strong downtrend.
sellSignal3 = ta.barssince(close >= ema21) > 15
Sell Signal 4 (Cross Below 50 SMA):
This signal is triggered when the price crosses below the 50-period Simple Moving Average (SMA), where the current bar closes below the 50 SMA, and the previous bar closed above it. It indicates the start of a bearish trend.
sellSignal4 = ta.crossunder(close, sma50)
Sell Signal 5 (Cross Below 200 SMA):
This signal is triggered when the price crosses below the 200-period Simple Moving Average (SMA), where the current bar closes below the 200 SMA, and the previous bar closed above it. It indicates a long-term bearish trend.
sellSignal5 = ta.crossunder(close, sma200)
Sell Signal 6 (High Below 50 SMA):
This signal is true when the highest price of the current bar is below the 50-period SMA, indicating weak bullishness or a potential bearish reversal.
sellSignal6 = high < sma50
Sell Signal 7 (Distribution Day):
A distribution day is identified when the closing range of a bar is less than 50% and the volume is larger than the previous bar's volume, suggesting that selling pressure is increasing.
sellSignal7 = (close - low) / (high - low) < 0.5 and volume > volume
Sell Signal 8 (Lower Low):
This signal occurs when the current bar's low is less than the lowest low of the previous 14 bars, indicating a breakdown or strong downward momentum.
sellSignal8 = low < ta.lowest(low, 14)
Sell Signal 9 (Downside Reversal Bar):
A downside reversal bar occurs when the stock opens above the previous bar's high but falls to close below the previous bar’s low, signaling a reversal from bullish to bearish.
sellSignal9 = open > high and close < low
Sell Signal 10 (Distribution Cluster):
This signal is triggered when a distribution day occurs three times in the rolling 7-bar period, indicating significant selling pressure.
sellSignal10 = ta.valuewhen((close < low) and volume > volume , 1, 7) >= 3
Theme Mode:
Users can select the theme mode (Auto, Dark, or Light) to match the chart's background or to manually choose a light or dark theme for the oscillator's appearance.
Exposure Score Calculation: The script calculates a cumulative exposure score based on a series of buy and sell signals.
Buy signals increase the exposure score, while sell signals decrease it. Each signal impacts the score by ±10%.
Signal Conditions: The buy and sell signals are derived from multiple conditions, including crossovers with moving averages (EMA21, SMA50, SMA200), trend behavior, and price/volume analysis.
Oscillator Visualization: The exposure score is visualized as a line on the chart, changing color based on whether the exposure is positive (long position) or negative (short position). It is limited to the range of -100% to +100%.
Position Type: The indicator also indicates the position type based on the exposure score, labeling it as "Long," "Short," or "Neutral."
Horizontal Lines: Reference lines at 0%, 100%, and -100% visually mark neutral, increasing long, and increasing short exposure levels.
Exposure Table: A table displays the current exposure level (in percentage) and position type ("Long," "Short," or "Neutral"), updated dynamically based on the oscillator’s value.
Inputs:
Theme Mode: Choose "Auto" to use the default chart theme, or manually select "Dark" or "Light."
Usage:
This oscillator is designed to help traders track market sentiment, gauge exposure levels, and manage risk. It can be used for long-term trend-following strategies or short-term trades based on moving average crossovers and volume analysis.
The oscillator operates in conjunction with the chart’s price action and provides a visual representation of the market’s current trend strength and exposure.
Important Considerations:
Risk Management: While the exposure score provides valuable insight, it should be combined with other risk management tools and analysis for optimal trading decisions.
Signal Sensitivity: The accuracy and effectiveness of the signals depend on market conditions and may require adjustments based on the user’s trading strategy or timeframe.
Disclaimer:
This script is for educational purposes only. Trading involves significant risk, and users should carefully evaluate all market conditions and apply appropriate risk management strategies before using this tool in live trading environments.