SA 2.0The 100/200 EMA crossover strategy is a popular trend-following strategy used in technical analysis. It aims to identify potential buy and sell signals based on the crossover of two exponential moving averages (EMAs), specifically the 100-period EMA and the 200-period EMA. This strategy is designed to capture the momentum of the market and take advantage of sustained trends in the price of US30. This strategy can also work on other instruments, just backtest the winrate.
How it Works:
Timeframe Selection: The strategy is optimized for the US30 index and is implemented on both the 5-minute and 3-minute charts. These shorter timeframes provide more frequent trading opportunities and allow for quicker decision-making.
EMA Crossover: The strategy focuses on the crossover of the 100-period EMA and the 200-period EMA. When the 100 EMA crosses above the 200 EMA, it generates a bullish signal, indicating a potential upward trend. Conversely, when the 100 EMA crosses below the 200 EMA, it generates a bearish signal, suggesting a potential downward trend.
Rejection Confirmation: To filter out false signals and increase the reliability of the strategy, it incorporates a rejection confirmation. After the initial crossover, the strategy looks for price rejections near the 100 EMA. A rejection occurs when the price briefly moves below the 100 EMA and then quickly bounces back above it, indicating potential support and a possible continuation of the trend. It is during this rejection that the strategy generates the buy or sell signal.
Buy and Sell Signals: When a rejection occurs after the crossover, the strategy generates a buy signal if the rejection is above the 100 EMA. This suggests that the price is likely to continue its upward momentum. On the other hand, a sell signal is generated if the rejection occurs below the 100 EMA, indicating a potential continuation of the downward trend. These signals help traders identify favorable entry points for long or short positions.
Risk Management: As with any trading strategy, proper risk management is crucial. Traders can use stop-loss orders to limit potential losses in case the market moves against their positions. Additionally, setting profit targets or trailing stops can help secure profits as the trend progresses.
It's important to note that no trading strategy guarantees success, and it's recommended to test the strategy on historical data or in a demo trading environment before applying it with real funds. Furthermore, regular monitoring and adjustment may be necessary to adapt to changing market conditions.
Disclaimer: This description is for informational purposes only and should not be considered as financial advice. Trading carries risks, and individuals should exercise caution and consult with a qualified financial professional before making any investment decisions.
Cerca negli script per "摩根纳斯达克100基金风险大吗"
Any Oscillator Underlay [TTF]We are proud to release a new indicator that has been a while in the making - the Any Oscillator Underlay (AOU) !
Note: There is a lot to discuss regarding this indicator, including its intent and some of how it operates, so please be sure to read this entire description before using this indicator to help ensure you understand both the intent and some limitations with this tool.
Our intent for building this indicator was to accomplish the following:
Combine all of the oscillators that we like to use into a single indicator
Take up a bit less screen space for the underlay indicators for strategies that utilize multiple oscillators
Provide a tool for newer traders to be able to leverage multiple oscillators in a single indicator
Features:
Includes 8 separate, fully-functional indicators combined into one
Ability to easily enable/disable and configure each included indicator independently
Clearly named plots to support user customization of color and styling, as well as manual creation of alerts
Ability to customize sub-indicator title position and color
Ability to customize sub-indicator divider lines style and color
Indicators that are included in this initial release:
TSI
2x RSIs (dubbed the Twin RSI )
Stochastic RSI
Stochastic
Ultimate Oscillator
Awesome Oscillator
MACD
Outback RSI (Color-coding only)
Quick note on OB/OS:
Before we get into covering each included indicator, we first need to cover a core concept for how we're defining OB and OS levels. To help illustrate this, we will use the TSI as an example.
The TSI by default has a mid-point of 0 and a range of -100 to 100. As a result, a common practice is to place lines on the -30 and +30 levels to represent OS and OB zones, respectively. Most people tend to view these levels as distance from the edges/outer bounds or as absolute levels, but we feel a more way to frame the OB/OS concept is to instead define it as distance ("offset") from the mid-line. In keeping with the -30 and +30 levels in our example, the offset in this case would be "30".
Taking this a step further, let's say we decided we wanted an offset of 25. Since the mid-point is 0, we'd then calculate the OB level as 0 + 25 (+25), and the OS level as 0 - 25 (-25).
Now that we've covered the concept of how we approach defining OB and OS levels (based on offset/distance from the mid-line), and since we did apply some transformations, rescaling, and/or repositioning to all of the indicators noted above, we are going to discuss each component indicator to detail both how it was modified from the original to fit the stacked-indicator model, as well as the various major components that the indicator contains.
TSI:
This indicator contains the following major elements:
TSI and TSI Signal Line
Color-coded fill for the TSI/TSI Signal lines
Moving Average for the TSI
TSI Histogram
Mid-line and OB/OS lines
Default TSI fill color coding:
Green : TSI is above the signal line
Red : TSI is below the signal line
Note: The TSI traditionally has a range of -100 to +100 with a mid-point of 0 (range of 200). To fit into our stacking model, we first shrunk the range to 100 (-50 to +50 - cut it in half), then repositioned it to have a mid-point of 50. Since this is the "bottom" of our indicator-stack, no additional repositioning is necessary.
Twin RSI:
This indicator contains the following major elements:
Fast RSI (useful if you want to leverage 2x RSIs as it makes it easier to see the overlaps and crosses - can be disabled if desired)
Slow RSI (primary RSI)
Color-coded fill for the Fast/Slow RSI lines (if Fast RSI is enabled and configured)
Moving Average for the Slow RSI
Mid-line and OB/OS lines
Default Twin RSI fill color coding:
Dark Red : Fast RSI below Slow RSI and Slow RSI below Slow RSI MA
Light Red : Fast RSI below Slow RSI and Slow RSI above Slow RSI MA
Dark Green : Fast RSI above Slow RSI and Slow RSI below Slow RSI MA
Light Green : Fast RSI above Slow RSI and Slow RSI above Slow RSI MA
Note: The RSI naturally has a range of 0 to 100 with a mid-point of 50, so no rescaling or transformation is done on this indicator. The only manipulation done is to properly position it in the indicator-stack based on which other indicators are also enabled.
Stochastic and Stochastic RSI:
These indicators contain the following major elements:
Configurable lengths for the RSI (for the Stochastic RSI only), K, and D values
Configurable base price source
Mid-line and OB/OS lines
Note: The Stochastic and Stochastic RSI both have a normal range of 0 to 100 with a mid-point of 50, so no rescaling or transformations are done on either of these indicators. The only manipulation done is to properly position it in the indicator-stack based on which other indicators are also enabled.
Ultimate Oscillator (UO):
This indicator contains the following major elements:
Configurable lengths for the Fast, Middle, and Slow BP/TR components
Mid-line and OB/OS lines
Moving Average for the UO
Color-coded fill for the UO/UO MA lines (if UO MA is enabled and configured)
Default UO fill color coding:
Green : UO is above the moving average line
Red : UO is below the moving average line
Note: The UO naturally has a range of 0 to 100 with a mid-point of 50, so no rescaling or transformation is done on this indicator. The only manipulation done is to properly position it in the indicator-stack based on which other indicators are also enabled.
Awesome Oscillator (AO):
This indicator contains the following major elements:
Configurable lengths for the Fast and Slow moving averages used in the AO calculation
Configurable price source for the moving averages used in the AO calculation
Mid-line
Option to display the AO as a line or pseudo-histogram
Moving Average for the AO
Color-coded fill for the AO/AO MA lines (if AO MA is enabled and configured)
Default AO fill color coding (Note: Fill was disabled in the image above to improve clarity):
Green : AO is above the moving average line
Red : AO is below the moving average line
Note: The AO is technically has an infinite (unbound) range - -∞ to ∞ - and the effective range is bound to the underlying security price (e.g. BTC will have a wider range than SP500, and SP500 will have a wider range than EUR/USD). We employed some special techniques to rescale this indicator into our desired range of 100 (-50 to 50), and then repositioned it to have a midpoint of 50 (range of 0 to 100) to meet the constraints of our stacking model. We then do one final repositioning to place it in the correct position the indicator-stack based on which other indicators are also enabled. For more details on how we accomplished this, read our section "Binding Infinity" below.
MACD:
This indicator contains the following major elements:
Configurable lengths for the Fast and Slow moving averages used in the MACD calculation
Configurable price source for the moving averages used in the MACD calculation
Configurable length and calculation method for the MACD Signal Line calculation
Mid-line
Note: Like the AO, the MACD also technically has an infinite (unbound) range. We employed the same principles here as we did with the AO to rescale and reposition this indicator as well. For more details on how we accomplished this, read our section "Binding Infinity" below.
Outback RSI (ORSI):
This is a stripped-down version of the Outback RSI indicator (linked above) that only includes the color-coding background (suffice it to say that it was not technically feasible to attempt to rescale the other components in a way that could consistently be clearly seen on-chart). As this component is a bit of a niche/special-purpose sub-indicator, it is disabled by default, and we suggest it remain disabled unless you have some pre-defined strategy that leverages the color-coding element of the Outback RSI that you wish to use.
Binding Infinity - How We Incorporated the AO and MACD (Warning - Math Talk Ahead!)
Note: This applies only to the AO and MACD at time of original publication. If any other indicators are added in the future that also fall into the category of "binding an infinite-range oscillator", we will make that clear in the release notes when that new addition is published.
To help set the stage for this discussion, it's important to note that the broader challenge of "equalizing inputs" is nothing new. In fact, it's a key element in many of the most popular fields of data science, such as AI and Machine Learning. They need to take a diverse set of inputs with a wide variety of ranges and seemingly-random inputs (referred to as "features"), and build a mathematical or computational model in order to work. But, when the raw inputs can vary significantly from one another, there is an inherent need to do some pre-processing to those inputs so that one doesn't overwhelm another simply due to the difference in raw values between them. This is where feature scaling comes into play.
With this in mind, we implemented 2 of the most common methods of Feature Scaling - Min-Max Normalization (which we call "Normalization" in our settings), and Z-Score Normalization (which we call "Standardization" in our settings). Let's take a look at each of those methods as they have been implemented in this script.
Min-Max Normalization (Normalization)
This is one of the most common - and most basic - methods of feature scaling. The basic formula is: y = (x - min)/(max - min) - where x is the current data sample, min is the lowest value in the dataset, and max is the highest value in the dataset. In this transformation, the max would evaluate to 1, and the min would evaluate to 0, and any value in between the min and the max would evaluate somewhere between 0 and 1.
The key benefits of this method are:
It can be used to transform datasets of any range into a new dataset with a consistent and known range (0 to 1).
It has no dependency on the "shape" of the raw input dataset (i.e. does not assume the input dataset can be approximated to a normal distribution).
But there are a couple of "gotchas" with this technique...
First, it assumes the input dataset is complete, or an accurate representation of the population via random sampling. While in most situations this is a valid assumption, in trading indicators we don't really have that luxury as we're often limited in what sample data we can access (i.e. number of historical bars available).
Second, this method is highly sensitive to outliers. Since the crux of this transformation is based on the max-min to define the initial range, a single significant outlier can result in skewing the post-transformation dataset (i.e. major price movement as a reaction to a significant news event).
You can potentially mitigate those 2 "gotchas" by using a mechanism or technique to find and discard outliers (e.g. calculate the mean and standard deviation of the input dataset and discard any raw values more than 5 standard deviations from the mean), but if your most recent datapoint is an "outlier" as defined by that algorithm, processing it using the "scrubbed" dataset would result in that new datapoint being outside the intended range of 0 to 1 (e.g. if the new datapoint is greater than the "scrubbed" max, it's post-transformation value would be greater than 1). Even though this is a bit of an edge-case scenario, it is still sure to happen in live markets processing live data, so it's not an ideal solution in our opinion (which is why we chose not to attempt to discard outliers in this manner).
Z-Score Normalization (Standardization)
This method of rescaling is a bit more complex than the Min-Max Normalization method noted above, but it is also a widely used process. The basic formula is: y = (x – μ) / σ - where x is the current data sample, μ is the mean (average) of the input dataset, and σ is the standard deviation of the input dataset. While this transformation still results in a technically-infinite possible range, the output of this transformation has a 2 very significant properties - the mean (average) of the output dataset has a mean (μ) of 0 and a standard deviation (σ) of 1.
The key benefits of this method are:
As it's based on normalizing the mean and standard deviation of the input dataset instead of a linear range conversion, it is far less susceptible to outliers significantly affecting the result (and in fact has the effect of "squishing" outliers).
It can be used to accurately transform disparate sets of data into a similar range regardless of the original dataset's raw/actual range.
But there are a couple of "gotchas" with this technique as well...
First, it still technically does not do any form of range-binding, so it is still technically unbounded (range -∞ to ∞ with a mid-point of 0).
Second, it implicitly assumes that the raw input dataset to be transformed is normally distributed, which won't always be the case in financial markets.
The first "gotcha" is a bit of an annoyance, but isn't a huge issue as we can apply principles of normal distribution to conceptually limit the range by defining a fixed number of standard deviations from the mean. While this doesn't totally solve the "infinite range" problem (a strong enough sudden move can still break out of our "conceptual range" boundaries), the amount of movement needed to achieve that kind of impact will generally be pretty rare.
The bigger challenge is how to deal with the assumption of the input dataset being normally distributed. While most financial markets (and indicators) do tend towards a normal distribution, they are almost never going to match that distribution exactly. So let's dig a bit deeper into distributions are defined and how things like trending markets can affect them.
Skew (skewness): This is a measure of asymmetry of the bell curve, or put another way, how and in what way the bell curve is disfigured when comparing the 2 halves. The easiest way to visualize this is to draw an imaginary vertical line through the apex of the bell curve, then fold the curve in half along that line. If both halves are exactly the same, the skew is 0 (no skew/perfectly symmetrical) - which is what a normal distribution has (skew = 0). Most financial markets tend to have short, medium, and long-term trends, and these trends will cause the distribution curve to skew in one direction or another. Bullish markets tend to skew to the right (positive), and bearish markets to the left (negative).
Kurtosis: This is a measure of the "tail size" of the bell curve. Another way to state this could be how "flat" or "steep" the bell-shape is. If the bell is steep with a strong drop from the apex (like a steep cliff), it has low kurtosis. If the bell has a shallow, more sweeping drop from the apex (like a tall hill), is has high kurtosis. Translating this to financial markets, kurtosis is generally a metric of volatility as the bell shape is largely defined by the strength and frequency of outliers. This is effectively a measure of volatility - volatile markets tend to have a high level of kurtosis (>3), and stable/consolidating markets tend to have a low level of kurtosis (<3). A normal distribution (our reference), has a kurtosis value of 3.
So to try and bring all that back together, here's a quick recap of the Standardization rescaling method:
The Standardization method has an assumption of a normal distribution of input data by using the mean (average) and standard deviation to handle the transformation
Most financial markets do NOT have a normal distribution (as discussed above), and will have varying degrees of skew and kurtosis
Q: Why are we still favoring the Standardization method over the Normalization method, and how are we accounting for the innate skew and/or kurtosis inherent in most financial markets?
A: Well, since we're only trying to rescale oscillators that by-definition have a midpoint of 0, kurtosis isn't a major concern beyond the affect it has on the post-transformation scaling (specifically, the number of standard deviations from the mean we need to include in our "artificially-bound" range definition).
Q: So that answers the question about kurtosis, but what about skew?
A: So - for skew, the answer is in the formula - specifically the mean (average) element. The standard mean calculation assumes a complete dataset and therefore uses a standard (i.e. simple) average, but we're limited by the data history available to us. So we adapted the transformation formula to leverage a moving average that included a weighting element to it so that it favored recent datapoints more heavily than older ones. By making the average component more adaptive, we gained the effect of reducing the skew element by having the average itself be more responsive to recent movements, which significantly reduces the effect historical outliers have on the dataset as a whole. While this is certainly not a perfect solution, we've found that it serves the purpose of rescaling the MACD and AO to a far more well-defined range while still preserving the oscillator behavior and mid-line exceptionally well.
The most difficult parts to compensate for are periods where markets have low volatility for an extended period of time - to the point where the oscillators are hovering around the 0/midline (in the case of the AO), or when the oscillator and signal lines converge and remain close to each other (in the case of the MACD). It's during these periods where even our best attempt at ensuring accurate mirrored-behavior when compared to the original can still occasionally lead or lag by a candle.
Note: If this is a make-or-break situation for you or your strategy, then we recommend you do not use any of the included indicators that leverage this kind of bounding technique (the AO and MACD at time of publication) and instead use the Trandingview built-in versions!
We know this is a lot to read and digest, so please take your time and feel free to ask questions - we will do our best to answer! And as always, constructive feedback is always welcome!
TARVIS Labs - Bitcoin Macro Bottom/Top SignalsSCRIPT DESCRIPTION
This is a script specifically written to help provide indicators from a macro view. This script is best run on the 1 day interval on Bitstamp's $BTCUSD chart. It helps indicate when to accumulate bitcoin, and when its in a bull run when there are local tops, strong top warnings, and a signal to exit a bull run. This is described further below.
If you don't have interest in trading on the way to the top I suggest turning off the following indicators in the settings of the indicator:
- Opportunity To Buy Back In Indicator
- Local Top Near Bull Run Top Indicator
ACCUMULATION ZONE INDICATOR - LIGHT GREEN
Description
When we look at the history of Bitcoin every bottom has crossed below the 100 week EMA. Once it does its accompanied by hash ribbon cross with miner capitulation. After that is the prime time to accumulate as theres a clearer signal the bottom is in. Specifically, a signal to look for is the 14 day MACD/signal cross and the 14 day MACD continuing to stay above the signal until the price returns above the 100 week EMA. This is prime accumulation territory.
Strategy for Usage
A good strategy to use when accumulating the bottom is dollar-cost averaging over a 30 day period. The accumulation zone can last longer than 30 days but 30 days is a good range of time to DCA.
STRONG BUY IN ACCUMULATION ZONE INDICATOR - DARK GREEN
Description
We can add to the bottoming signal by looking for post-downtrend reversals inside the bottoming signal. We do this by using a 9/19 daily cross.
Strategy for Usage
These post-downtrend reversals can potentially provide better targeted days for accumulation than the broader bottoming signal and can be used to add more on that day than on an average day for the dollar cost average strategy. Say for example, use 1/3 of funds on these days rather than 1/30th.
OPPORTUNITY TO BUY BACK IN INDICATOR - BLUE
Description
When the 1d 18 EMA > 1d 63 EMA and the 12/52 1d crosses. These together provide good buy opportunities to buy bitcoin.
Strategy for Usage
If you happen to find yourself out of the market from your own TA or a trade, this signal can provide a buy opportunity to reenter the market if you're out of it.
BULL RUN LOCAL TOP INDICATOR - ORANGE
Description
We will similarly use the 100 week EMA to determine trend reversal into a bull run. When we see the 100 week EMA uptrending, we can begin to look for local tops using the 9/19 daily MACD/signal bearish cross along with the 12 EMA having a negative slope, which could be the beginning signal for a local top.
Strategy for Usage
This is a rather light indicator, but can be used in tandem with your own technical analysis to determine if you want to reenter after you exit from its signal.
LOCAL TOP NEAR BULL RUN TOP INDICATOR - RED
Description
When the 100 week EMA is in an uptrend we can look for significant loss of momentum in order to determine if a local top is in near a bull run top. Similar to the Bull Run Local Top Indicator, this strategy uses a MACD/signal cross but instead uses the 30/65 day EMAs.
Strategy for Usage
Ideally the right strategy to use here is to exit the market when this indicator starts. When the indicator ends if the "End of Bull Run Indicator" is not showing on the chart you can buy back into the market.
TOP IS LIKELY IN INDICATOR
Description
When the 100 week EMA is in a very strong uptrend and the 9/19 weekly MACD/signal bearish cross occurs, and the 63 EMA begins to downtrend.
Strategy for Usage
This signal typically accompanies the "Local Top Near Bull Run Top Indicator" therefore if you're following the strategy you would likely already be out of the market, but if you're not and this signal fires its a strong signal the top is in and we're likely going to start seeing a strong retrace. This is typically right before we see the "End of Bull Run Indicator". There is only one occurrence where it wasn't followed by a large drop & the "End of Bull Run Indicator" and that was in the 2017 bull run where there were many strong retracements post local top. The likelihood we see that again is low, but if it were to happen you can buy back into the market when the "Top is Likely In Indicator" and the "Local Top Near Bull Run Top Indicator" are not firing.
TOP IS LIKELY IN INDICATOR
Description
When the 100 week EMA is in a strong uptrend and the 9/19 weekly MACD/signal bearish cross occurs, and the 63 EMA begins to downtrend.
Strategy for Usage
This signal typically accompanies the "Local Top Near Bull Run Top Indicator" therefore if you're following the strategy you would likely already be out of the market, but if you're not and this signal fires its a strong signal the top is in and we're likely going to start seeing a strong retrace. This is typically right before we see the "End of Bull Run Indicator". There is only one occurrence where it wasn't followed by a large drop & the "End of Bull Run Indicator" and that was in the 2017 bull run where there were many strong retracements post local top. The likelihood we see that again is low, but if it were to happen you can buy back into the market when the "Top is Likely In Indicator" and the "Local Top Near Bull Run Top Indicator" are not firing.
END OF BULL RUN INDICATOR
Description
When the 100 week EMA is in an uptrend and the 1d 18 EMA crosses the 1d 63 EMA.
Strategy for Usage
When the 100 week EMA is a strong uptrend and the 18/63 cross occurs the top is very likely in. It has occurred in every bull run top leading to the bear market.
Bollinger Bands Entry/Exit ThresholdsBollinger Bands Entry/Exit Thresholds
Author of enhancements: chuckaschultz
Inspired and adapted from the original 'Bollinger Bands Breakout Oscillator' by LuxAlgo
Overview
Pairs nicely with Contrarian 100 MA
The Bollinger Bands Entry/Exit Thresholds is a powerful momentum-based indicator designed to help traders identify potential entry and exit points in trending or breakout markets. By leveraging Bollinger Bands, this indicator quantifies price deviations from the bands to generate bullish and bearish momentum signals, displayed as an oscillator. It includes customizable entry and exit signals based on user-defined thresholds, with visual cues plotted either on the oscillator panel or directly on the price chart.
This indicator is ideal for traders looking to capture breakout opportunities or confirm trend strength, with flexible settings to adapt to various markets and trading styles.
How It Works
The Bollinger Bands Entry/Exit Thresholds calculates two key metrics:
Bullish Momentum (Bull): Measures the extent to which the price exceeds the upper Bollinger Band, expressed as a percentage (0–100).
Bearish Momentum (Bear): Measures the extent to which the price falls below the lower Bollinger Band, also expressed as a percentage (0–100).
The indicator generates:
Long Entry Signals: Triggered when the bearish momentum (bear) crosses below a user-defined Long Threshold (default: 40). This suggests weakening bearish pressure, potentially indicating a reversal or breakout to the upside.
Exit Signals: Triggered when the bullish momentum (bull) crosses below a user-defined Sell Threshold (default: 80), indicating a potential reduction in bullish momentum and a signal to exit long positions.
Signals are visualized as tiny colored dots:
Long Entry: Blue dots, plotted either at the bottom of the oscillator or below the price bar (depending on user settings).
Exit Signal: White dots, plotted either at the top of the oscillator or above the price bar.
Calculation Methodology
Bollinger Bands:
A user-defined Length (default: 14) is used to calculate an Exponential Moving Average (EMA) of the source price (default: close).
Standard deviation is computed over the same length, multiplied by a user-defined Multiplier (default: 1.0).
Upper Band = EMA + (Standard Deviation × Multiplier)
Lower Band = EMA - (Standard Deviation × Multiplier)
Bull and Bear Momentum:
For each bar in the lookback period (length), the indicator calculates:
Bullish Momentum: The sum of positive deviations of the price above the upper band, normalized by the total absolute deviation from the upper band, scaled to a 0–100 range.
Bearish Momentum: The sum of positive deviations of the price below the lower band, normalized by the total absolute deviation from the lower band, scaled to a 0–100 range.
Formula:
bull = (sum of max(price - upper, 0) / sum of abs(price - upper)) * 100
bear = (sum of max(lower - price, 0) / sum of abs(lower - price)) * 100
Signal Generation:
Long Entry: Triggered when bear crosses below the Long Threshold.
Exit: Triggered when bull crosses below the Sell Threshold.
Settings
Length: Lookback period for EMA and standard deviation (default: 14).
Multiplier: Multiplier for standard deviation to adjust Bollinger Band width (default: 1.0).
Source: Input price data (default: close).
Long Threshold: Bearish momentum level below which a long entry signal is generated (default: 40).
Sell Threshold: Bullish momentum level below which an exit signal is generated (default: 80).
Plot Signals on Main Chart: Option to display entry/exit signals on the price chart instead of the oscillator panel (default: false).
Style:
Bullish Color: Color for bullish momentum plot (default: #f23645).
Bearish Color: Color for bearish momentum plot (default: #089981).
Visual Features
Bull and Bear Plots: Displayed as colored lines with gradient fills for visual clarity.
Midline: Horizontal line at 50 for reference.
Threshold Lines: Dashed green line for Long Threshold and dashed red line for Sell Threshold.
Signal Dots:
Long Entry: Tiny blue dots (below price bar or at oscillator bottom).
Exit: Tiny white dots (above price bar or at oscillator top).
How to Use
Add to Chart: Apply the indicator to your TradingView chart.
Adjust Settings: Customize the Length, Multiplier, Long Threshold, and Sell Threshold to suit your trading strategy.
Interpret Signals:
Enter a long position when a blue dot appears, indicating bearish momentum dropping below the Long Threshold.
Exit the long position when a white dot appears, indicating bullish momentum dropping below the Sell Threshold.
Toggle Plot Location: Enable Plot Signals on Main Chart to display signals on the price chart for easier integration with price action analysis.
Combine with Other Tools: Use alongside other indicators (e.g., trendlines, support/resistance) to confirm signals.
Notes
This indicator is inspired by LuxAlgo’s Bollinger Bands Breakout Oscillator but has been enhanced with customizable entry/exit thresholds and signal plotting options.
Best used in conjunction with other technical analysis tools to filter false signals, especially in choppy or range-bound markets.
Adjust the Multiplier to make the Bollinger Bands wider or narrower, affecting the sensitivity of the momentum calculations.
Disclaimer
This indicator is provided for educational and informational purposes only.
CCI Divergence Detector
A technical analysis tool that identifies divergences between price action and the Commodity Channel Index (CCI) oscillator. Unlike standard divergence indicators, this system employs advanced gradient visualization, multi-layer wave effects, and comprehensive customization options to provide traders with crystal-clear divergence signals and market momentum insights.
Core Detection Mechanism
CCI-Based Analysis: The indicator utilizes the Commodity Channel Index as its primary oscillator, calculated from user-configurable source data (default: HLC3) with adjustable length parameters. The CCI provides reliable momentum readings that effectively highlight price-momentum divergences.
Dynamic Pivot Detection: The system employs adaptive pivot detection with three sensitivity levels (High/Normal/Low) to identify significant highs and lows in both price and CCI values. This dynamic approach ensures optimal divergence detection across different market conditions and timeframes.
Dual Divergence Analysis:
Regular Bullish Divergences: Detected when price makes lower lows while CCI makes higher lows, indicating potential upward reversal
Regular Bearish Divergences: Identified when price makes higher highs while CCI makes lower highs, signaling potential downward reversal
Strength Classification System: Each detected divergence is automatically classified into three strength categories (Weak/Moderate/Strong) based on:
-Price differential magnitude
-CCI differential magnitude
-Time duration between pivot points
-User-configurable strength multiplier
Advanced Visual System
Multi-Layer Wave Effects: The indicator features a revolutionary wave visualization system that creates depth through multiple gradient layers around the CCI line. The wave width dynamically adjusts based on ATR volatility, providing intuitive visual feedback about market conditions.
Professional Color Gradient System: Nine independent color inputs control every visual aspect:
Bullish Colors (Light/Medium/Dark): Control oversold areas, wave effects, and strong bullish signals
Bearish Colors (Light/Medium/Dark): Manage overbought zones, wave fills, and strong bearish signals
Neutral Colors (Light/Medium/Dark): Handle table elements, zero line, and transitional states
Intelligent Color Mapping: Colors automatically adapt based on CCI values:
Overbought territory (>100): Bearish color gradients with increasing intensity
Neutral positive (0 to 100): Blend from neutral to bearish tones
Oversold territory (<-100): Bullish color gradients with increasing intensity
Neutral negative (-100 to 0): Transition from neutral to bullish tones
Key Features & Components
Advanced Configuration System: Eight organized input groups provide granular control:
General Settings: System enable, pivot length, confidence thresholds
Oscillator Selection: CCI parameters, overbought/oversold levels, normalization options
Detection Parameters: Divergence types, minimum strength requirements
Sensitivity Tuning: Pivot sensitivity, divergence threshold, confirmation bars
Visual System: Line thickness, labels, backgrounds, table display
Wave Effects: Dynamic width, volatility response, layer count, glow effects
Transparency Controls: Independent transparency for all visual elements
Smoothing & Filtering: CCI smoothing types, noise filtering, wave smoothing
Professional Alert System: Comprehensive alert functionality with dynamic messages including:
-Divergence type and strength classification
-Current CCI value and confidence percentage
-Customizable alert frequency and conditions
Enhanced Information Table: Real-time display showing:
-Current CCI length and value
-Market status (Overbought/Normal/Oversold)
-Active sensitivity setting
Configurable table positioning (4 corner options)
Visual Elements Explained
Primary CCI Line: Main oscillator plot with gradient coloring that reflects market momentum and CCI intensity. Line thickness is user-configurable (1-8 pixels).
Wave Effect Layers: Multi-layer gradient fills creating a dynamic wave around the
CCI line:
-Outer layers provide broad market context
-Inner layers highlight immediate momentum
-Core layers show precise CCI movement
-All layers respond to volatility and momentum changes
Divergence Lines & Labels:
-Solid lines connecting divergence pivot points
-Color-coded based on divergence type and strength
-Labels displaying divergence type and strength classification
-Customizable transparency and size options
Reference Lines:
-Zero line with neutral color coding
-Overbought level (default: 100) with bearish coloring
-Oversold level (default: -100) with bullish coloring
Background Gradient: Optional background coloring that reflects CCI intensity and market conditions with user-controlled transparency (80-99%).
Configuration Options
Sensitivity Controls:
Pivot sensitivity: High/Normal/Low detection levels
Divergence threshold: 0.1-2.0 sensitivity range
Confirmation bars: 1-5 bar confirmation requirement
Strength multiplier: 0.1-3.0 calculation adjustment
Visual Customization:
Line transparency: 0-90% for main elements
Wave transparency: 0-95% for fill effects
Background transparency: 80-99% for subtle background
Label transparency: 0-50% for text elements
Glow transparency: 50-95% for glow effects
Advanced Processing:
Five smoothing types: None/SMA/EMA/RMA/WMA
Noise filtering with adjustable threshold (0.1-10.0)
CCI normalization for enhanced gradient scaling
Dynamic wave width with ATR-based volatility response
Interpretation Guidelines
Divergence Signals:
Strong divergences: High-confidence reversal signals requiring immediate attention
Moderate divergences: Reliable signals suitable for most trading strategies
Weak divergences: Early warning signals best combined with additional confirmation
Wave Intensity: Wave width and color intensity provide real-time volatility and momentum feedback. Wider, more intense waves indicate higher market volatility and stronger momentum.
Color Transitions: Smooth color transitions between bullish, neutral, and bearish states help identify market regime changes and momentum shifts.
CCI Levels: Traditional overbought (>100) and oversold (<-100) levels remain relevant, but the gradient system provides more nuanced momentum reading between these extremes.
Technical Specifications
Compatible Timeframes: All timeframes supported
Maximum Labels: 500 (for divergence marking)
Maximum Lines: 500 (for divergence drawing)
Pine Script Version: v5 (latest optimization)
Overlay Mode: False (separate pane indicator)
Usage Recommendations
This indicator works best when:
-Combined with price action analysis and support/resistance levels
-Used across multiple timeframes for confirmation
-Integrated with proper risk management protocols
-Applied in trending markets for divergence-based reversal signals
-Utilized with other technical indicators for comprehensive analysis
Risk Disclaimer: Trading involves substantial risk of loss. This indicator is provided for analytical purposes only and does not constitute financial advice. Divergence signals, while powerful, are not guaranteed to predict future price movements. Past performance is not indicative of future results. Always use proper risk management and never trade with capital you cannot afford to lose.
ADR% Extension Levels from SMA 50I created this indicator inspired by RealSimpleAriel (a swing trader I recommend following on X) who does not buy stocks extended beyond 4 ADR% from the 50 SMA and uses extensions from the 50 SMA at 7-8-9-10-11-12-13 ADR% to take profits with a 20% position trimming.
RealSimpleAriel's strategy (as I understood it):
-> Focuses on leading stocks from leading groups and industries, i.e., those that have grown the most in the last 1-3-6 months (see on Finviz groups and then select sector-industry).
-> Targets stocks with the best technical setup for a breakout, above the 200 SMA in a bear market and above both the 50 SMA and 200 SMA in a bull market, selecting those with growing Earnings and Sales.
-> Buys stocks on breakout with a stop loss set at the day's low of the breakout and ensures they are not extended beyond 4 ADR% from the 50 SMA.
-> 3-5 day momentum burst: After a breakout, takes profits by selling 1/2 or 1/3 of the position after a 3-5 day upward move.
-> 20% trimming on extension from the 50 SMA: At 7 ADR% (ADR% calculated over 20 days) extension from the 50 SMA, takes profits by selling 20% of the remaining position. Continues to trim 20% of the remaining position based on the stock price extension from the 50 SMA, calculated using the 20-period ADR%, thus trimming 20% at 8-9-10-11 ADR% extension from the 50 SMA. Upon reaching 12-13 ADR% extension from the 50 SMA, considers the stock overextended, closes the remaining position, and evaluates a short.
-> Trailing stop with ascending SMA: Uses a chosen SMA (10, 20, or 50) as the definitive stop loss for the position, depending on the stock's movement speed (preferring larger SMAs for slower-moving stocks or for long-term theses). If the stock's closing price falls below the chosen SMA, the entire position is closed.
In summary:
-->Buy a breakout using the day's low of the breakout as the stop loss (this stop loss is the most critical).
--> Do not buy stocks extended beyond 4 ADR% from the 50 SMA.
--> Sell 1/2 or 1/3 of the position after 3-5 days of upward movement.
--> Trim 20% of the position at each 7-8-9-10-11-12-13 ADR% extension from the 50 SMA.
--> Close the entire position if the breakout fails and the day's low of the breakout is reached.
--> Close the entire position if the price, during the rise, falls below a chosen SMA (10, 20, or 50, depending on your preference).
--> Definitively close the position if it reaches 12-13 ADR% extension from the 50 SMA.
I used Grok from X to create this indicator. I am not a programmer, but based on the ADR% I use, it works.
Below is Grok from X's description of the indicator:
Script Description
The script is a custom indicator for TradingView that displays extension levels based on ADR% relative to the 50-period Simple Moving Average (SMA). Below is a detailed description of its features, structure, and behavior:
1. Purpose of the Indicator
Name: "ADR% Extension Levels from SMA 50".
Objective: Draw horizontal blue lines above and below the 50-period SMA, corresponding to specific ADR% multiples (4, 7, 8, 9, 10, 11, 12, 13). These levels represent potential price extension zones based on the average daily percentage volatility.
Overlay: The indicator is overlaid on the price chart (overlay=true), so the lines and SMA appear directly on the price graph.
2. Configurable Inputs
The indicator allows users to customize parameters through TradingView settings:
SMA Length (smaLength):
Default: 50 periods.
Description: Specifies the number of periods for calculating the Simple Moving Average (SMA). The 50-period SMA serves as the reference point for extension levels.
Constraint: Minimum 1 period.
ADR% Length (adrLength):
Default: 20 periods.
Description: Specifies the number of days to calculate the moving average of the daily high/low ratio, used to determine ADR%.
Constraint: Minimum 1 period.
Scale Factor (scaleFactor):
Default: 1.0.
Description: An optional multiplier to adjust the distance of extension levels from the SMA. Useful if levels are too close or too far due to an overly small or large ADR%.
Constraint: Minimum 0.1, increments of 0.1.
Tooltip: "Adjust if levels are too close or far from SMA".
3. Main Calculations
50-period SMA:
Calculated with ta.sma(close, smaLength) using the closing price (close).
Serves as the central line around which extension levels are drawn.
ADR% (Average Daily Range Percentage):
Formula: 100 * (ta.sma(dhigh / dlow, adrLength) - 1).
Details:
dhigh and dlow are the daily high and low prices, obtained via request.security(syminfo.tickerid, "D", high/low) to ensure data is daily-based, regardless of the chart's timeframe.
The dhigh / dlow ratio represents the daily percentage change.
The simple moving average (ta.sma) of this ratio over 20 days (adrLength) is subtracted by 1 and multiplied by 100 to obtain ADR% as a percentage.
The result is multiplied by scaleFactor for manual adjustments.
Extension Levels:
Defined as ADR% multiples: 4, 7, 8, 9, 10, 11, 12, 13.
Stored in an array (levels) for easy iteration.
For each level, prices above and below the SMA are calculated as:
Above: sma50 * (1 + (level * adrPercent / 100))
Below: sma50 * (1 - (level * adrPercent / 100))
These represent price levels corresponding to a percentage change from the SMA equal to level * ADR%.
4. Visualization
Horizontal Blue Lines:
For each level (4, 7, 8, 9, 10, 11, 12, 13 ADR%), two lines are drawn:
One above the SMA (e.g., +4 ADR%).
One below the SMA (e.g., -4 ADR%).
Color: Blue (color.blue).
Style: Solid (style=line.style_solid).
Management:
Each level has dedicated variables for upper and lower lines (e.g., upperLine1, lowerLine1 for 4 ADR%).
Previous lines are deleted with line.delete before drawing new ones to avoid overlaps.
Lines are updated at each bar with line.new(bar_index , level, bar_index, level), covering the range from the previous bar to the current one.
Labels:
Displayed only on the last bar (barstate.islast) to avoid clutter.
For each level, two labels:
Above: E.g., "4 ADR%", positioned above the upper line (style=label.style_label_down).
Below: E.g., "-4 ADR%", positioned below the lower line (style=label.style_label_up).
Color: Blue background, white text.
50-period SMA:
Drawn as a gray line (color.gray) for visual reference.
Diagnostics:
ADR% Plot: ADR% is plotted in the status line (orange, histogram style) to verify the value.
ADR% Label: A label on the last bar near the SMA shows the exact ADR% value (e.g., "ADR%: 2.34%"), with a gray background and white text.
5. Behavior
Dynamic Updating:
Lines update with each new bar to reflect new SMA 50 and ADR% values.
Since ADR% uses daily data ("D"), it remains constant within the same day but changes day-to-day.
Visibility Across All Bars:
Lines are drawn on every bar, not just the last one, ensuring visibility on historical data as well.
Adaptability:
The scaleFactor allows level adjustments if ADR% is too small (e.g., for low-volatility symbols) or too large (e.g., for cryptocurrencies).
Compatibility:
Works on any timeframe since ADR% is calculated from daily data.
Suitable for symbols with varying volatility (e.g., stocks, forex, cryptocurrencies).
6. Intended Use
Technical Analysis: Extension levels represent significant price zones based on average daily volatility. They can be used to:
Identify potential price targets (e.g., take profit at +7 ADR%).
Assess support/resistance zones (e.g., -4 ADR% as support).
Measure price extension relative to the 50 SMA.
Trading: Useful for strategies based on breakouts or mean reversion, where ADR% levels indicate reversal or continuation points.
Debugging: Labels and ADR% plot help verify that values align with the symbol’s volatility.
7. Limitations
Dependence on Daily Data: ADR% is based on daily dhigh/dlow, so it may not reflect intraday volatility on short timeframes (e.g., 1 minute).
Extreme ADR% Values: For low-volatility symbols (e.g., bonds) or high-volatility symbols (e.g., meme stocks), ADR% may require adjustments via scaleFactor.
Graphical Load: Drawing 16 lines (8 upper, 8 lower) on every bar may slow the chart for very long historical periods, though line management is optimized.
ADR% Formula: The formula 100 * (sma(dhigh/dlow, Length) - 1) may produce different values compared to other ADR% definitions (e.g., (high - low) / close * 100), so users should be aware of the context.
8. Visual Example
On a chart of a stock like TSLA (daily timeframe):
The 50 SMA is a gray line tracking the average trend.
Assuming an ADR% of 3%:
At +4 ADR% (12%), a blue line appears at sma50 * 1.12.
At -4 ADR% (-12%), a blue line appears at sma50 * 0.88.
Other lines appear at ±7, ±8, ±9, ±10, ±11, ±12, ±13 ADR%.
On the last bar, labels show "4 ADR%", "-4 ADR%", etc., and a gray label shows "ADR%: 3.00%".
ADR% is visible in the status line as an orange histogram.
9. Code: Technical Structure
Language: Pine Script @version=5.
Inputs: Three configurable parameters (smaLength, adrLength, scaleFactor).
Calculations:
SMA: ta.sma(close, smaLength).
ADR%: 100 * (ta.sma(dhigh / dlow, adrLength) - 1) * scaleFactor.
Levels: sma50 * (1 ± (level * adrPercent / 100)).
Graphics:
Lines: Created with line.new, deleted with line.delete to avoid overlaps.
Labels: Created with label.new only on the last bar.
Plots: plot(sma50) for the SMA, plot(adrPercent) for debugging.
Optimization: Uses dedicated variables for each line (e.g., upperLine1, lowerLine1) for clear management and to respect TradingView’s graphical object limits.
10. Possible Improvements
Option to show lines only on the last bar: Would reduce visual clutter.
Customizable line styles: Allow users to choose color or style (e.g., dashed).
Alert for anomalous ADR%: A message if ADR% is too small or large.
Dynamic levels: Allow users to specify ADR% multiples via input.
Optimization for short timeframes: Adapt ADR% for intraday timeframes.
Conclusion
The script creates a visual indicator that helps traders identify price extension levels based on daily volatility (ADR%) relative to the 50 SMA. It is robust, configurable, and includes debugging tools (ADR% plot and labels) to verify values. The ADR% formula based on dhigh/dlow
EMA Scoring Strategy## **📊 EMA Scoring Strategy for Trend Analysis**
This strategy is designed to **identify bullish trends** based on multiple **Exponential Moving Averages (EMAs)**. It assigns a **score** based on how the price and EMAs interact, and highlights strong bullish conditions when the score reaches **4 or above**.
---
## **🔹 Strategy Logic**
### 1️⃣ **Calculating EMAs**
- **EMA 21** → Short-term trend
- **EMA 50** → Mid-term trend
- **EMA 100** → Long-term trend
---
### 2️⃣ **Scoring System**
For each trading day, the strategy assigns **+1 or -1 points** based on the following conditions:
| Condition | Score |
|-----------|-------|
| If **Price > EMA 21** | +1 |
| If **Price > EMA 50** | +1 |
| If **Price > EMA 100** | +1 |
| If **EMA 21 > EMA 50** | +1 |
| If **EMA 50 > EMA 100** | +1 |
| If **EMA 21 > EMA 100** | +1 |
| If **Price < EMA 21** | -1 |
| If **Price < EMA 50** | -1 |
| If **Price < EMA 100** | -1 |
| If **EMA 21 < EMA 50** | -1 |
| If **EMA 50 < EMA 100** | -1 |
| If **EMA 21 < EMA 100** | -1 |
---
### 3️⃣ **Bullish Confirmation** (Score ≥ 4)
- The **score is calculated every day**.
- When the **score reaches 4 or above**, it confirms a strong **bullish trend**.
- A **green background** is applied to highlight such days.
- A **histogram** is plotted **only when the score is 4 or higher** to keep the chart clean.
- A **buy signal** is generated when the score **crosses above 4**.
---
## **🔹 Visualization & Alerts**
### ✅ **What You See on the Chart**
1. **EMA Lines (21, 50, 100)** 📈
2. **Green Background for Strong Bullish Days (Score ≥ 4)** ✅
3. **Histogram Showing Score (Only for 4 and above)** 📊
4. **Buy Signal When Score Crosses Above 4** 💰
### 🔔 **Alerts**
- **An alert is triggered** when the score crosses **above 4**, notifying the user about a bullish trend.
---
## **📌 How to Use This Strategy**
1. **Identify Strong Bullish Trends:** When the score is **4 or above**, it suggests that price momentum is strong.
2. **Enter Trades on Buy Signals:** When the score **crosses above 4**, it could be a good time to buy.
3. **Stay in the Trade While Score is 4+:** The green background confirms a **strong uptrend**.
4. **Exit When Score Drops Below 4:** This suggests weakening momentum.
---
## **🔹 Advantages of This Strategy**
✅ **Simple & Objective** - Uses clear rules for trend confirmation
✅ **Filters Out Noise** - Only highlights strong bullish conditions
✅ **Works on Any Market** - Can be applied to stocks, indices, crypto, etc.
✅ **Customizable** - You can tweak EMAs or score conditions as needed
---
## **🚀 Next Steps**
Would you like me to add **stop-loss conditions**, **sell signals**, or any **extra confirmations like RSI or volume**? 😃
Position Size Using Manual Stop Loss [odnac]
This indicator calculates the risk per position based on user-defined settings.
Two Calculation Methods
1. Manual Stop Loss (%) & Manual Leverage
2. Manual Stop Loss (%) & Optimized Leverage
Settings
1. init_capital
Enter your current total capital.
2. Maximum Risk (%) per Position of Total Capital
Specify the percentage of your total funds to be risked for a single position.
3. manual_SL(%)
Enter the stop-loss percentage.
Range: 0.01 ~ 100
4. manual_leverage
Enter the leverage you wish to use.
Range: 1 ~ 100
Used in the first method (Manual Stop Loss (%) & Manual Leverage).
5. Safety Margin
Specify the safety margin for optimized leverage.
Range: 0.01 ~ 1
Used in the second method (Manual Stop Loss (%) & Optimized Leverage). Details are explained below.
Indicator Colors
Black: Indicates which method is being used.
White: Leverage.
First Green: Funds to be invested.
Second Green: Funds to be invested * Leverage.
First Red: Stop-loss (%).
Second Red: Stop-loss (%) * Leverage.
Details for Each Method:
1. Manual Stop Loss (%) & Manual Leverage
This method calculates the size of the funds based on user-defined stop-loss (%) and leverage settings.
White: manual_leverage.
First Green: Investment = Maximum Risk / (manual_SL / 100) / manual_leverage
Second Green: Maximum Risk * (manual_SL / 100)
First Red: manual_SL.
Second Red: manual_SL * manual_leverage
Ensure that the product of manual_SL and manual_leverage does not exceed 100.
If it does, there is a risk of liquidation.
2. Manual Stop Loss (%) & Optimized Leverage
This method calculates optimized leverage based on the user-defined stop-loss (%) and determines the size of the funds.
Optimization_LEVER = auto_leverage * safety_margin
auto_leverage = 100 / stop-loss (%), rounded down to the nearest whole number.
(Exception: If the stop-loss (%) is in the range of 0 ~ 1%, auto_leverage is always 100.)
Example:
If the stop-loss is 4%, auto_leverage = 25 (100 / 4 = 25).
However, 4% × 25 leverage equals 100%, meaning liquidation occurs even with a stop-loss.
To reduce this risk, the safety_margin value is applied.
White: auto_leverage * safety_margin
First Green: Investment = Maximum Risk / (manual_SL / 100) / optimization_LEVER
Second Green: Maximum Risk * (manual_SL / 100)
First Red: manual_SL.
Second Red: manual_SL * optimization_LEVER
Z-Score Weighted Trend System I [InvestorUnknown]The Z-Score Weighted Trend System I is an advanced and experimental trading indicator designed to utilize a combination of slow and fast indicators for a comprehensive analysis of market trends. The system is designed to identify stable trends using slower indicators while capturing rapid market shifts through dynamically weighted fast indicators. The core of this indicator is the dynamic weighting mechanism that utilizes the Z-score of price , allowing the system to respond effectively to significant market movements.
Dynamic Z-Score-Based Weighting System
The Z-Score Weighted Trend System I utilizes the Z-score of price to assign weights dynamically to fast indicators. This mechanism is designed to capture rapid market shifts at potential turning points, providing timely entry and exit signals.
Traders can choose from two primary weighting mechanisms:
Threshold-Based Weighting: The fast indicators are given weight only when the absolute Z-score exceeds a user-defined threshold. Below this threshold, fast indicators have no impact on the final signal.
Continuous Weighting: By setting the threshold to zero, fast indicators always contribute to the final signal, regardless of Z-score levels. However, this increases the likelihood of false signals during ranging or low-volatility markets
// Calculate weight for Fast Indicators based on Z-Score (Slow Indicator weight is kept to 1 for simplicity)
f_zscore_weights(series float z, simple float weight_thre) =>
float fast_weight = na
float slow_weight = na
if weight_thre > 0
if math.abs(z) <= weight_thre
fast_weight := 0
slow_weight := 1
else
fast_weight := 0 + math.sqrt(math.abs(z))
slow_weight := 1
else
fast_weight := 0 + math.sqrt(math.abs(z))
slow_weight := 1
Choice of Z-Score Normalization
Traders have the flexibility to select different Z-score processing methods to better suit their trading preferences:
Raw Z-Score or Moving Average: Traders can opt for either the raw Z-score or a moving average of the Z-score to smooth out fluctuations.
Normalized Z-Score (ranging from -1 to 1) or Z-Score Percentile: The normalized Z-score is simply the raw Z-score divided by 3, while the Z-score percentile utilizes a normal distribution for transformation.
f_zscore_perc(series float zscore_src, simple int zscore_len, simple string zscore_a, simple string zscore_b, simple string ma_type, simple int ma_len) =>
z = (zscore_src - ta.sma(zscore_src, zscore_len)) / ta.stdev(zscore_src, zscore_len)
zscore = switch zscore_a
"Z-Score" => z
"Z-Score MA" => ma_type == "EMA" ? (ta.ema(z, ma_len)) : (ta.sma(z, ma_len))
output = switch zscore_b
"Normalized Z-Score" => (zscore / 3) > 1 ? 1 : (zscore / 3) < -1 ? -1 : (zscore / 3)
"Z-Score Percentile" => (f_percentileFromZScore(zscore) - 0.5) * 2
output
Slow and Fast Indicators
The indicator uses a combination of slow and fast indicators:
Slow Indicators (constant weight) for stable trend identification: DMI (Directional Movement Index), CCI (Commodity Channel Index), Aroon
Fast Indicators (dynamic weight) to identify rapid trend shifts: ZLEMA (Zero-Lag Exponential Moving Average), IIRF (Infinite Impulse Response Filter)
Each indicator is calculated using for-loop methods to provide a smoothed and averaged view of price data over varying lengths, ensuring stability for slow indicators and responsiveness for fast indicators.
Signal Calculation
The final trading signal is determined by a weighted combination of both slow and fast indicators. The slow indicators provide a stable view of the trend, while the fast indicators offer agile responses to rapid market movements. The signal calculation takes into account the dynamic weighting of fast indicators based on the Z-score:
// Calculate Signal (as weighted average)
float sig = math.round(((DMI*slow_w) + (CCI*slow_w) + (Aroon*slow_w) + (ZLEMA*fast_w) + (IIRF*fast_w)) / (3*slow_w + 2*fast_w), 2)
Backtest Mode and Performance Metrics
The indicator features a detailed backtesting mode, allowing traders to compare the effectiveness of their selected settings against a traditional Buy & Hold strategy. The backtesting provides:
Equity calculation based on signals generated by the indicator.
Performance metrics comparing Buy & Hold metrics with the system’s signals, including: Mean, positive, and negative return percentages, Standard deviations, Sharpe, Sortino, and Omega Ratios
// Calculate Performance Metrics
f_PerformanceMetrics(series float base, int Lookback, simple float startDate, bool Annualize = true) =>
// Initialize variables for positive and negative returns
pos_sum = 0.0
neg_sum = 0.0
pos_count = 0
neg_count = 0
returns_sum = 0.0
returns_squared_sum = 0.0
pos_returns_squared_sum = 0.0
neg_returns_squared_sum = 0.0
// Loop through the past 'Lookback' bars to calculate sums and counts
if (time >= startDate)
for i = 0 to Lookback - 1
r = (base - base ) / base
returns_sum += r
returns_squared_sum += r * r
if r > 0
pos_sum += r
pos_count += 1
pos_returns_squared_sum += r * r
if r < 0
neg_sum += r
neg_count += 1
neg_returns_squared_sum += r * r
float export_array = array.new_float(12)
// Calculate means
mean_all = math.round((returns_sum / Lookback), 4)
mean_pos = math.round((pos_count != 0 ? pos_sum / pos_count : na), 4)
mean_neg = math.round((neg_count != 0 ? neg_sum / neg_count : na), 4)
// Calculate standard deviations
stddev_all = math.round((math.sqrt((returns_squared_sum - (returns_sum * returns_sum) / Lookback) / Lookback)) * 100, 2)
stddev_pos = math.round((pos_count != 0 ? math.sqrt((pos_returns_squared_sum - (pos_sum * pos_sum) / pos_count) / pos_count) : na) * 100, 2)
stddev_neg = math.round((neg_count != 0 ? math.sqrt((neg_returns_squared_sum - (neg_sum * neg_sum) / neg_count) / neg_count) : na) * 100, 2)
// Calculate probabilities
prob_pos = math.round((pos_count / Lookback) * 100, 2)
prob_neg = math.round((neg_count / Lookback) * 100, 2)
prob_neu = math.round(((Lookback - pos_count - neg_count) / Lookback) * 100, 2)
// Calculate ratios
sharpe_ratio = math.round((mean_all / stddev_all * (Annualize ? math.sqrt(Lookback) : 1))* 100, 2)
sortino_ratio = math.round((mean_all / stddev_neg * (Annualize ? math.sqrt(Lookback) : 1))* 100, 2)
omega_ratio = math.round(pos_sum / math.abs(neg_sum), 2)
// Set values in the array
array.set(export_array, 0, mean_all), array.set(export_array, 1, mean_pos), array.set(export_array, 2, mean_neg),
array.set(export_array, 3, stddev_all), array.set(export_array, 4, stddev_pos), array.set(export_array, 5, stddev_neg),
array.set(export_array, 6, prob_pos), array.set(export_array, 7, prob_neu), array.set(export_array, 8, prob_neg),
array.set(export_array, 9, sharpe_ratio), array.set(export_array, 10, sortino_ratio), array.set(export_array, 11, omega_ratio)
// Export the array
export_array
//}
Calibration Mode
A Calibration Mode is included for traders to focus on individual indicators, helping them fine-tune their settings without the influence of other components. In Calibration Mode, the user can visualize each indicator separately, making it easier to adjust parameters.
Alerts
The indicator includes alerts for long and short signals when the indicator changes direction, allowing traders to set automated notifications for key market events.
// Alert Conditions
alertcondition(long_alert, "LONG (Z-Score Weighted Trend System)", "Z-Score Weighted Trend System flipped ⬆LONG⬆")
alertcondition(short_alert, "SHORT (Z-Score Weighted Trend System)", "Z-Score Weighted Trend System flipped ⬇Short⬇")
Important Note:
The default settings of this indicator are not optimized for any particular market condition. They are generic starting points for experimentation. Traders are encouraged to use the calibration tools and backtesting features to adjust the system to their specific trading needs.
The results generated from the backtest are purely historical and are not indicative of future results. Market conditions can change, and the performance of this system may differ under different circumstances. Traders and investors should exercise caution and conduct their own research before using this indicator for any trading decisions.
Multiple SMA, EMA, and VWAP CrossoversMultiple SMA, EMA, and VWAP Crossovers with Alerts
Overview : The "Multiple SMA, EMA, and VWAP Crossovers" script is designed for traders who want to monitor various simple moving averages (SMAs), exponential moving averages (EMAs), and the volume-weighted average price (VWAP) to identify potential buy and sell opportunities. This script allows you to visualize key moving averages on your chart and create custom alerts for specific crossover events.
Detail s: This script plots the following moving averages:
Simple Moving Averages (SMA): 5, 10, 20, 50, 100, 200, and 325 periods
Exponential Moving Average (EMA): 9 periods
Volume-Weighted Average Price (VWAP)
It includes options to display these moving averages and set alerts for their crossovers.
Available Crossovers:
20/50 SMA, 20/100 SMA, 20/200 SMA, 20/325 SMA
50/100 SMA, 50/200 SMA, 50/325 SMA
100/200 SMA, 100/325 SMA
200/325 SMA
VWAP/20 SMA, VWAP/50 SMA, VWAP/100 SMA, VWAP/200 SMA, VWAP/325 SMA
Optional Lines to Add to the Chart:
9 EMA, 5 SMA, 10 SMA, 20 SMA, 50 SMA, 100 SMA, 200 SMA, 325 SMA, VWAP
How to Use:
Enable Indicators: Use the input options to select which SMAs, EMA, and VWAP you want to display on your chart.
Set Alerts: Choose the specific crossover events you want to monitor. For example, you can set an alert for the 20/50 SMA crossover or the VWAP/100 SMA crossover.
Monitor the Chart: The script will plot the selected moving averages on your chart. When a selected crossover event occurs, an alert will be triggered, notifying you of the potential trade opportunity.
Usage Tips:
Trending Market: Use the buy and sell alerts in trending markets where the moving averages can help confirm the direction of the trend.
Key Support and Resistance Levels: Combine crossover alerts with key support and resistance levels for more reliable trading signals.
Volume Confirmation: Ensure there is sufficient volume to support the crossover signals, indicating stronger momentum behind the move.
When NOT to Use Buy and Sell Alerts:
Low Volume: Avoid using buy and sell alerts during periods of low trading volume, as the signals may be less reliable.
Market Noise: Be cautious in highly volatile markets where frequent crossovers might generate false signals.
Sideways Market: In a sideways or range-bound market, crossover signals can result in multiple whipsaws, leading to potential losses.
Why Use This Script? This script provides a comprehensive tool for traders to monitor multiple moving averages and VWAP crossovers efficiently. It allows you to customize alerts based on your trading strategy and helps you make informed decisions by visualizing key technical indicators on your chart.
Legal Disclaimer: The information provided by this script is for educational and informational purposes only and should not be considered financial advice. The developer of this script is not responsible for any financial losses incurred from using this script.
Support and resistance levels (Day, Week, Month) + EMAs + SMAs(ENG): This Pine 5 script provides various tools for configuring and displaying different support and resistance levels, as well as moving averages (EMA and SMA) on charts. Using these tools is an essential strategy for determining entry and exit points in trades.
Support and Resistance Levels
Daily, weekly, and monthly support and resistance levels play a key role in analyzing price movements:
Daily levels: Represent prices where a cryptocurrency has tended to bounce within the current trading day.
Weekly levels: Reflect strong prices that hold throughout the week.
Monthly levels: Indicate the most significant levels that can influence price movement over the month.
When trading cryptocurrencies, traders use these levels to make decisions about entering or exiting positions. For example, if a cryptocurrency approaches a weekly resistance level and fails to break through it, this may signal a sell opportunity. If the price reaches a daily support level and starts to bounce up, it may indicate a potential long position.
Market context and trading volumes are also important when analyzing support and resistance levels. High volume near a level can confirm its significance and the likelihood of subsequent price movement. Traders often combine analysis across different time frames to get a more complete picture and improve the accuracy of their trading decisions.
Moving Averages
Moving averages (EMA and SMA) are another important tool in the technical analysis of cryptocurrencies:
EMA (Exponential Moving Average): Gives more weight to recent prices, allowing it to respond more quickly to price changes.
SMA (Simple Moving Average): Equally considers all prices over a given period.
Key types of moving averages used by traders:
EMA 50 and 200: Often used to identify trends. The crossing of the 50-day EMA with the 200-day EMA is called a "golden cross" (buy signal) or a "death cross" (sell signal).
SMA 50, 100, 150, and 200: These periods are often used to determine long-term trends and support/resistance levels. Similar to the EMA, the crossings of these averages can signal potential trend changes.
Settings Groups:
EMA Golden Cross & Death Cross: A setting to display the "golden cross" and "death cross" for the EMA.
EMA 50 & 200: A setting to display the 50-day and 200-day EMA.
Support and Resistance Levels: Includes settings for daily, weekly, and monthly levels.
SMA 50, 100, 150, 200: A setting to display the 50, 100, 150, and 200-day SMA.
SMA Golden Cross & Death Cross: A setting to display the "golden cross" and "death cross" for the SMA.
Components:
Enable/disable the display of support and resistance levels.
Show level labels.
Parameters for adjusting offset, display of EMA and SMA, and their time intervals.
Parameters for configuring EMA and SMA Golden Cross & Death Cross.
EMA Parameters:
Enable/disable the display of 50 and 200-day EMA.
Color and style settings for EMA.
Options to use bar gaps and the "LookAhead" function.
SMA Parameters:
Enable/disable the display of 50, 100, 150, and 200-day SMA.
Color and style settings for SMA.
Options to use bar gaps and the "LookAhead" function.
Effective use of support and resistance levels, as well as moving averages, requires an understanding of technical analysis, discipline, and the ability to adapt the strategy according to changing market conditions.
(RUS) Данный Pine 5 скрипт предоставляет разнообразные инструменты для настройки и отображения различных уровней поддержки и сопротивления, а также скользящих средних (EMA и SMA) на графиках. Использование этих инструментов является важной стратегией для определения точек входа и выхода из сделок.
Уровни поддержки и сопротивления
Дневные, недельные и месячные уровни поддержки и сопротивления играют ключевую роль в анализе движения цен:
Дневные уровни: Представляют собой цены, на которых криптовалюта имела тенденцию отскакивать в течение текущего торгового дня.
Недельные уровни: Отражают сильные цены, которые сохраняются в течение недели.
Месячные уровни: Указывают на наиболее значимые уровни, которые могут влиять на движение цены в течение месяца.
При торговле криптовалютами трейдеры используют эти уровни для принятия решений о входе в позицию или закрытии сделки. Например, если криптовалюта приближается к недельному уровню сопротивления и не удается его преодолеть, это может стать сигналом для продажи. Если цена достигает дневного уровня поддержки и начинает отскакивать вверх, это может указывать на возможность открытия длинной позиции.
Контекст рынка и объемы торговли также важны при анализе уровней поддержки и сопротивления. Высокий объем при приближении к уровню может подтвердить его значимость и вероятность последующего движения цены. Трейдеры часто комбинируют анализ различных временных рамок для получения более полной картины и улучшения точности своих торговых решений.
Скользящие средние
Скользящие средние (EMA и SMA) являются еще одним важным инструментом в техническом анализе криптовалют:
EMA (Exponential Moving Average): Экспоненциальная скользящая средняя, которая придает большее значение последним ценам. Это позволяет более быстро реагировать на изменения в ценах.
SMA (Simple Moving Average): Простая скользящая средняя, которая равномерно учитывает все цены в заданном периоде.
Основные виды скользящих средних, которые используются трейдерами:
EMA 50 и 200: Часто используются для выявления трендов. Пересечение 50-дневной EMA с 200-дневной EMA называется "золотым крестом" (сигнал на покупку) или "крестом смерти" (сигнал на продажу).
SMA 50, 100, 150 и 200: Эти периоды часто используются для определения долгосрочных трендов и уровней поддержки/сопротивления. Аналогично EMA, пересечения этих средних могут сигнализировать о возможных изменениях тренда.
Группы настроек:
EMA Golden Cross & Death Cross: Настройка для отображения "золотого креста" и "креста смерти" для EMA.
EMA 50 & 200: Настройка для отображения 50-дневной и 200-дневной EMA.
Уровни поддержки и сопротивления: Включает настройки для дневных, недельных и месячных уровней.
SMA 50, 100, 150, 200: Настройка для отображения 50, 100, 150 и 200-дневных SMA.
SMA Golden Cross & Death Cross: Настройка для отображения "золотого креста" и "креста смерти" для SMA.
Компоненты:
Включение/отключение отображения уровней поддержки и сопротивления.
Показ ярлыков уровней.
Параметры для настройки смещения, отображения EMA и SMA, а также их временных интервалов.
Параметры для настройки EMA и SMA Golden Cross & Death Cross.
Параметры EMA:
Включение/отключение отображения 50 и 200-дневных EMA.
Настройки цвета и стиля для EMA.
Опции для использования разрыва баров и функции "LookAhead".
Параметры SMA:
Включение/отключение отображения 50, 100, 150 и 200-дневных SMA.
Настройки цвета и стиля для SMA.
Опции для использования разрыва баров и функции "LookAhead".
Эффективное использование уровней поддержки и сопротивления, а также скользящих средних, требует понимания технического анализа, дисциплины и умения адаптировать стратегию в зависимости от изменяющихся условий рынка.
Normalized Relative Strength LineNormalized Relative Strength Line Indicator
Overview
The "Normalized Relative Strength Line" indicator measures the relative performance of a stock compared to a benchmark index (e.g., NSE
). This indicator helps traders and investors identify whether a stock is outperforming or underperforming the selected benchmark over a specified lookback period. The values are normalized to a range of -100 to +100 for easy interpretation.
Key Features
Comparison Symbol: Users can select a benchmark index or any other comparison symbol to measure relative performance.
Lookback Period: A user-defined period for normalization, typically set to a number of trading days (e.g., 252 days for one year).
Relative Strength Calculation: The indicator calculates the percentage change in price for both the stock and the comparison symbol from the start of the lookback period.
Normalization: The relative strength values are normalized to a range of -100 to +100 to facilitate comparison and visualization.
Smoothing: An optional 14-period simple moving average (SMA) is applied to the normalized relative strength line for a smoother representation of trends.
Interpretation
Positive Values (+100 to 0): When the normalized relative strength (RS) line is above 0, it indicates that the stock is outperforming the comparison symbol. Higher values signify stronger outperformance.
Negative Values (0 to -100): When the normalized RS line is below 0, it indicates that the stock is underperforming the comparison symbol. Lower values signify stronger underperformance.
Horizontal Line at 0: The horizontal line at 0 serves as a reference point. Crossing this line from below indicates a shift from underperformance to outperformance, and crossing from above indicates a shift from outperformance to underperformance.
Crossovers: The points where the RS line crosses the moving average (red line) can signal potential changes in relative performance trends.
Example Use Case
If the normalized RS line of a stock consistently remains around +100, it suggests that the stock has been strongly outperforming the comparison symbol over the selected lookback period. Conversely, if it remains around -100, it suggests strong underperformance.
TOTAL:(RSI+TSI)TOTAL:(RSI+TSI)
This indicator collects instant data of RSI and TSI oscillators. RSI moves between (0) and (100) values as a moving line, while TSI moves between (-100) and (+100) values as two moving lines.
The top value of the sum of these values is graphically;
It takes the total value (+300) from RSI (+100), TSI (+100) and (+100).
The lowest value of the sum of these values is graphically;
It takes the value (-200) from the RSI (0), (-100) and (-100) from the TSI.
In case this indicator approaches (+300) graphically; It can be seen that price candlesticks mostly move upwards. This may not always give accurate results. Past incompatibilities can affect this situation.
In case this indicator approaches (-200) graphically; It can be seen that price candlesticks mostly move downwards. This may not always give accurate results. Past incompatibilities can affect this situation.
The graphical movements and numerical values created by this indicator do not give precise results for price candles.
CCI colored RSIKnowing how to write code will hopefully be my saving grace with trading. Regardless, I have things to learn yet and the CCI indicator seems to get a lot of respect from chart-art minimalists.
On Investopedia, it says, “The CCI compares the current price to an average price over a period of time. The indicator fluctuates above or below zero, moving into positive or negative territory. While most values, approximately 75%, fall between -100 and +100, about 25% of the values fall outside this range, indicating a lot of weakness or strength in the price movement”
So I decided to have the regular RSI colored with information from the CCI that I just learned about. RSI color changes depending on whether or not the CCI was extended beyond the –100 and 100 extremities, as this indicates trend strength, and helps to not exit a trade early. Arrows are drawn for when the CCI crosses the 0 point of the CCI, which if overlaid, is the 50 on the RSI.
I have also added the option of having the background shaded according to CCI signals. Crosses OVER the –100 and 100 are the early and late bullish signals, while crosses UNDER the –100 and 100 are early and late bearish. I added to the RSI according to how Investopedia says to trade the CCI here.
www.investopedia.com
I added lines to the RSI to delineate the zones that Constance Brown talks about in her work with the RSI.
I kept the code simple to demonstrate my process, editing out lines instead of deleting, etc. I hope it helps somebody new to programming in Pine Script be able to hop right in.
Happy Turkey Day! Gobble Gobble. Say “Gobble Gobble” out loud. Do it.
Edit: Gratuity options removed. Try not to support terrorism this holiday season. And ffs turn off that race-baiting fact-destroying humanity threatening trash on your tv. We fight terrorism all day up in this mf. Savin stupid hoes and everything. Because it's the right thing to do. Not because Soros said so and paid TradingView enough.
Trend Scores + Volume-Weighted Trend ScoresHere is a simple indicator based on Tushar Chande's TrendScore .
The main purpose of the TrendScore is to determine the strength and direction of a trend, which it does by comparing the current price to the prices within a user-defined window of historical prices.
In the input menu, the user defines the starting and ending period. The current price is then compared to each historical price. If the current price is greater than the given historical price, then the TrendScore is incremented, while it is decremented if it is below the given historical price. TrendScore values fluctuate between a maximum of 100 and a minimum of -100, with 100 meaning that the current price is greater than each historical price in the window and a value of -100 meaning the inverse is true.
We then use the same process to calculate the volume trend score by passing in volume to the 'getTrendScore' function. Lastly, the indicator also also calculates a 'volume-weighted trend score'. This is simply the average of the price trend score and the volume trend score. It is not plotted by default, but users can set the input option to true in the input menu and it will be plotted as a yellow line (as seen in the bottom chart).
The Chart:
The trend scores for price are plotted as a histogram. We've summarized the meaning behind its color changes below:
-If ( trendScore == 100)
then color = dark green
-if ( trendScore < 100 and trendScore is increasing)
then color = light green
-if ( trendScore > 0 and trendScore is DECREASING)
then color = pink
-if ( trendScore < 0)
then color = red
The volume trend score is plotted as a blue line. We felt that using a similar coloring system for the volume trend scores would over-crowd the chart and take away from the simplicity that makes this indicator useful. The volume-weighted trend score is plotted as a yellow line.
The main price bars change color based on the price trend score to make the values easier to visualize as well.
Interpretation:
This is a pretty versatile indicator. We summarized the ways in which traders can use it:
-Enter Long Positions when the trend score crosses zero from negative to positive territory.
-Exit Long Positions when the trend score was previously 100 and begins decreasing (ie bar color changes from dark green to pink).
-Spot bearish divergences when price trend score is 100 or relatively high and the volume trend score decreases significantly.
-Identify bullish divergences when price trend score is relatively low and volume trend score is increasing.
~Happy Trading~
Trend Strength Oscillator📌 Trend Strength Oscillator
📄 Description
Trend Strength Oscillator measures the directional strength of price relative to an adaptive dynamic trend band. It evaluates how far the current price is from the midpoint of a trend channel and normalizes this value by recent volatility range, allowing traders to detect trend strength, direction, and potential exhaustion in any market condition.
📌 Features
🔹 Adaptive Trend Band Logic: Uses a modified ATR and time-dependent spread formula to dynamically adjust upper and lower trend bands.
🔹 Trendline Midpoint Calculation: The central trendline is defined as the average between upper and lower bands.
🔹 Relative Positioning: Measures how far the close is from the center of the band as a percentage.
🔹 Range Normalization: Uses a normalized range to account for recent volatility, reducing noise in the oscillator reading.
🔹 Oscillator Output (±100 scale):
+100 indicates strong bullish momentum
-100 indicates strong bearish momentum
0 is the neutral centerline
🛠️ How to Use
✅ Trend Strength > +50: Indicates a strong bullish phase.
✅ Trend Strength < -50: Indicates a strong bearish phase.
⚠️ Crossing above 0: Potential bullish trend initiation.
⚠️ Crossing below 0: Potential bearish trend initiation.
📉 Values near 0: Suggest trend weakness or ranging conditions.
Best suited timeframes: 1H, 4H, Daily
Ideal combination with: RSI, MACD, volume-based oscillators, moving average crosses
✅ TradingView House Rules Compliance
This indicator is written in Pine Script v5 and fully open-source.
The script does not repaint, does not generate false alerts, and does not access external or private data.
It is intended strictly as a technical analysis tool, and not a buy/sell signal generator.
Users are encouraged to combine this tool with other confirmations and independent judgment in trading decisions.
=========================================================
📌 Trend Strength Oscillator
📄 설명 (Description)
Trend Strength Oscillator는 가격이 동적 추세 밴드 내 어디에 위치해 있는지를 정량적으로 분석하여, 추세의 방향성과 강도를 시각적으로 보여주는 오실레이터 지표입니다. 최근 변동성을 반영한 밴드를 기반으로 가격 위치를 정규화하여, 과매수·과매도 상태나 추세의 소멸 가능성까지 탐지할 수 있도록 설계되었습니다.
📌 주요 특징 (Features)
🔹 적응형 추세 밴드 계산: ATR과 시간 경과를 기반으로 상단/하단 밴드를 동적으로 조정
🔹 중심 추세선 산출: 상단과 하단 밴드의 평균값을 중심선으로 활용하여 기준 축 제공
🔹 상대 위치 계산: 현재 종가가 중심선에서 얼마나 떨어져 있는지를 정규화하여 추세 강도 계산
🔹 변동성 기반 정규화: 최근 밴드 범위를 기준으로 상대 거리를 0~100 사이 값으로 변환
🔹 오실레이터 출력 (범위: ±100):
+100에 가까울수록 강한 상승 추세
-100에 가까울수록 강한 하락 추세
0에 가까울수록 횡보 구간 가능성
🛠️ 사용법 (How to Use)
✅ +50 이상: 강한 상승 추세 지속 중
✅ -50 이하: 강한 하락 추세 지속 중
⚠️ 0선 돌파 상향: 상승 추세 시작 가능성
⚠️ 0선 돌파 하향: 하락 추세 시작 가능성
🟡 0 근처 유지: 추세 약화 또는 횡보장 가능성
추천 시간대: 1시간봉, 4시간봉, 일봉
보조 지표로 추천: RSI, MACD, OBV, 이동평균 크로스 등과 함께 활용 시 효과적
✅ 트레이딩뷰 하우스룰 준수사항 (TradingView House Rules Compliance)
본 지표는 Pine Script v5로 작성된 오픈소스 공개용 스크립트입니다.
리페인트(Repaint) 현상이 없으며, **허위 경고(Spam Alerts)**나 성능 저하 요소도 없습니다.
외부 데이터 접근 없이 완전히 자체 계산으로 동작합니다.
이 지표는 투자 판단을 돕기 위한 분석용 도구이며, 직접적인 매수·매도 신호로 사용해서는 안 됩니다.
모든 트레이딩은 사용자의 독립적인 판단과 책임 하에 이루어져야 합니다.
3.RSI LIJO 45*55//@version=6
indicator(title="3.RSI LIJO 45*55", shorttitle="RSI-LIJO-45-55", format=format.price, precision=2, timeframe="", timeframe_gaps=true)
rsiLengthInput = input.int(9, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
calculateDivergence = input.bool(false, title="Calculate Divergence", group="RSI Settings", display=display.data_window, tooltip="Calculating divergences is needed in order for divergence alerts to fire.")
change = ta.change(rsiSourceInput)
up = ta.rma(math.max(change, 0), rsiLengthInput)
down = ta.rma(-math.min(change, 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
// Change RSI line color based on bands
rsiColor = rsi > 50 ? color.green : rsi < 50 ? color.red : color.white
rsiPlot = plot(rsi, "RSI", color=rsiColor)
rsiUpperBand = hline(55, "RSI Upper Band", color=color.rgb(5, 247, 22))
midline = hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(45, "RSI Lower Band", color=color.rgb(225, 18, 14))
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
midLinePlot = plot(50, color=na, editable=false, display=display.none)
fill(rsiPlot, midLinePlot, 100, 55, top_color=color.new(color.green, 0), bottom_color=color.new(color.green, 100), title="Overbought Gradient Fill")
fill(rsiPlot, midLinePlot, 45, 0, top_color=color.new(color.red, 100), bottom_color=color.new(color.red, 0), title="Oversold Gradient Fill")
// Smoothing MA inputs
GRP = "Smoothing"
TT_BB = "Only applies when 'SMA + Bollinger Bands' is selected. Determines the distance between the SMA and the bands."
maTypeInput = input.string("SMA", "Type", options= , group=GRP, display=display.data_window)
maLengthInput = input.int(31, "Length", group=GRP, display=display.data_window)
bbMultInput = input.float(2.0, "BB StdDev", minval=0.001, maxval=50, step=0.5, tooltip=TT_BB, group=GRP, display=display.data_window)
var enableMA = maTypeInput != "None"
var isBB = maTypeInput == "SMA + Bollinger Bands"
// Smoothing MA Calculation
ma(source, length, MAtype) =>
switch MAtype
"SMA" => ta.sma(source, length)
"SMA + Bollinger Bands" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
// Smoothing MA plots
smoothingMA = enableMA ? ma(rsi, maLengthInput, maTypeInput) : na
smoothingStDev = isBB ? ta.stdev(rsi, maLengthInput) * bbMultInput : na
plot(smoothingMA, "RSI-based MA", color=color.yellow, display=enableMA ? display.all : display.none, editable=enableMA)
bbUpperBand = plot(smoothingMA + smoothingStDev, title="Upper Bollinger Band", color=color.green, display=isBB ? display.all : display.none, editable=isBB)
bbLowerBand = plot(smoothingMA - smoothingStDev, title="Lower Bollinger Band", color=color.green, display=isBB ? display.all : display.none, editable=isBB)
fill(bbUpperBand, bbLowerBand, color=isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill", display=isBB ? display.all : display.none, editable=isBB)
// Divergence
lookbackRight = 5
lookbackLeft = 5
rangeUpper = 60
rangeLower = 5
bearColor = color.red
bullColor = color.green
textColor = color.white
noneColor = color.new(color.white, 100)
_inRange(bool cond) =>
bars = ta.barssince(cond)
rangeLower <= bars and bars <= rangeUpper
plFound = false
phFound = false
bullCond = false
bearCond = false
rsiLBR = rsi
if calculateDivergence
//------------------------------------------------------------------------------
// Regular Bullish
// rsi: Higher Low
plFound := not na(ta.pivotlow(rsi, lookbackLeft, lookbackRight))
rsiHL = rsiLBR > ta.valuewhen(plFound, rsiLBR, 1) and _inRange(plFound )
// Price: Lower Low
lowLBR = low
priceLL = lowLBR < ta.valuewhen(plFound, lowLBR, 1)
bullCond := priceLL and rsiHL and plFound
//------------------------------------------------------------------------------
// Regular Bearish
// rsi: Lower High
phFound := not na(ta.pivothigh(rsi, lookbackLeft, lookbackRight))
rsiLH = rsiLBR < ta.valuewhen(phFound, rsiLBR, 1) and _inRange(phFound )
// Price: Higher High
highLBR = high
priceHH = highLBR > ta.valuewhen(phFound, highLBR, 1)
bearCond := priceHH and rsiLH and phFound
plot(
plFound ? rsiLBR : na,
offset = -lookbackRight,
title = "Regular Bullish",
linewidth = 2,
color = (bullCond ? bullColor : noneColor),
display = display.pane,
editable = calculateDivergence)
plotshape(
bullCond ? rsiLBR : na,
offset = -lookbackRight,
title = "Regular Bullish Label",
text = " Bull ",
style = shape.labelup,
location = location.absolute,
color = bullColor,
textcolor = textColor,
display = display.pane,
editable = calculateDivergence)
plot(
phFound ? rsiLBR : na,
offset = -lookbackRight,
title = "Regular Bearish",
linewidth = 2,
color = (bearCond ? bearColor : noneColor),
display = display.pane,
editable = calculateDivergence)
plotshape(
bearCond ? rsiLBR : na,
offset = -lookbackRight,
title = "Regular Bearish Label",
text = " Bear ",
style = shape.labeldown,
location = location.absolute,
color = bearColor,
textcolor = textColor,
display = display.pane,
editable = calculateDivergence)
alertcondition(bullCond, title='Regular Bullish Divergence', message="Found a new Regular Bullish Divergence, Pivot Lookback Right number of bars to the left of the current bar.")
alertcondition(bearCond, title='Regular Bearish Divergence', message='Found a new Regular Bearish Divergence, Pivot Lookback Right number of bars to the left of the current bar.')
Liquid Pulse Liquid Pulse by Dskyz (DAFE) Trading Systems
Liquid Pulse is a trading algo built by Dskyz (DAFE) Trading Systems for futures markets like NQ1!, designed to snag high-probability trades with tight risk control. it fuses a confluence system—VWAP, MACD, ADX, volume, and liquidity sweeps—with a trade scoring setup, daily limits, and VIX pauses to dodge wild volatility. visuals include simple signals, VWAP bands, and a dashboard with stats.
Core Components for Liquid Pulse
Volume Sensitivity (volumeSensitivity) controls how much volume spikes matter for entries. options: 'Low', 'Medium', 'High' default: 'High' (catches small spikes, good for active markets) tweak it: 'Low' for calm markets, 'High' for chaos.
MACD Speed (macdSpeed) sets the MACD’s pace for momentum. options: 'Fast', 'Medium', 'Slow' default: 'Medium' (solid balance) tweak it: 'Fast' for scalping, 'Slow' for swings.
Daily Trade Limit (dailyTradeLimit) caps trades per day to keep risk in check. range: 1 to 30 default: 20 tweak it: 5-10 for safety, 20-30 for action.
Number of Contracts (numContracts) sets position size. range: 1 to 20 default: 4 tweak it: up for big accounts, down for small.
VIX Pause Level (vixPauseLevel) stops trading if VIX gets too hot. range: 10 to 80 default: 39.0 tweak it: 30 to avoid volatility, 50 to ride it.
Min Confluence Conditions (minConditions) sets how many signals must align. range: 1 to 5 default: 2 tweak it: 3-4 for strict, 1-2 for more trades.
Min Trade Score (Longs/Shorts) (minTradeScoreLongs/minTradeScoreShorts) filters trade quality. longs range: 0 to 100 default: 73 shorts range: 0 to 100 default: 75 tweak it: 80-90 for quality, 60-70 for volume.
Liquidity Sweep Strength (sweepStrength) gauges breakouts. range: 0.1 to 1.0 default: 0.5 tweak it: 0.7-1.0 for strong moves, 0.3-0.5 for small.
ADX Trend Threshold (adxTrendThreshold) confirms trends. range: 10 to 100 default: 41 tweak it: 40-50 for trends, 30-35 for weak ones.
ADX Chop Threshold (adxChopThreshold) avoids chop. range: 5 to 50 default: 20 tweak it: 15-20 to dodge chop, 25-30 to loosen.
VWAP Timeframe (vwapTimeframe) sets VWAP period. options: '15', '30', '60', '240', 'D' default: '60' (1-hour) tweak it: 60 for day, 240 for swing, D for long.
Take Profit Ticks (Longs/Shorts) (takeProfitTicksLongs/takeProfitTicksShorts) sets profit targets. longs range: 5 to 100 default: 25.0 shorts range: 5 to 100 default: 20.0 tweak it: 30-50 for trends, 10-20 for chop.
Max Profit Ticks (maxProfitTicks) caps max gain. range: 10 to 200 default: 60.0 tweak it: 80-100 for big moves, 40-60 for tight.
Min Profit Ticks to Trail (minProfitTicksTrail) triggers trailing. range: 1 to 50 default: 7.0 tweak it: 10-15 for big gains, 5-7 for quick locks.
Trailing Stop Ticks (trailTicks) sets trail distance. range: 1 to 50 default: 5.0 tweak it: 8-10 for room, 3-5 for fast locks.
Trailing Offset Ticks (trailOffsetTicks) sets trail offset. range: 1 to 20 default: 2.0 tweak it: 1-2 for tight, 5-10 for loose.
ATR Period (atrPeriod) measures volatility. range: 5 to 50 default: 9 tweak it: 14-20 for smooth, 5-9 for reactive.
Hardcoded Settings volLookback: 30 ('Low'), 20 ('Medium'), 11 ('High') volThreshold: 1.5 ('Low'), 1.8 ('Medium'), 2 ('High') swingLen: 5
Execution Logic Overview trades trigger when confluence conditions align, entering long or short with set position sizes. exits use dynamic take-profits, trailing stops after a profit threshold, hard stops via ATR, and a time stop after 100 bars.
Features Multi-Signal Confluence: needs VWAP, MACD, volume, sweeps, and ADX to line up.
Risk Control: ATR-based stops (capped 15 ticks), take-profits (scaled by volatility), and trails.
Market Filters: VIX pause, ADX trend/chop checks, volatility gates. Dashboard: shows scores, VIX, ADX, P/L, win %, streak.
Visuals Simple signals (green up triangles for longs, red down for shorts) and VWAP bands with glow. info table (bottom right) with MACD momentum. dashboard (top right) with stats.
Chart and Backtest:
NQ1! futures, 5-minute chart. works best in trending, volatile conditions. tweak inputs for other markets—test thoroughly.
Backtesting: NQ1! Frame: Jan 19, 2025, 09:00 — May 02, 2025, 16:00 Slippage: 3 Commission: $4.60
Fee Typical Range (per side, per contract)
CME Exchange $1.14 – $1.20
Clearing $0.10 – $0.30
NFA Regulatory $0.02
Firm/Broker Commis. $0.25 – $0.80 (retail prop)
TOTAL $1.60 – $2.30 per side
Round Turn: (enter+exit) = $3.20 – $4.60 per contract
Disclaimer this is for education only. past results don’t predict future wins. trading’s risky—only use money you can lose. backtest and validate before going live. (expect moderators to nitpick some random chart symbol rule—i’ll fix and repost if they pull it.)
About the Author Dskyz (DAFE) Trading Systems crafts killer trading algos. Liquid Pulse is pure research and grit, built for smart, bold trading. Use it with discipline. Use it with clarity. Trade smarter. I’ll keep dropping badass strategies ‘til i build a brand or someone signs me up.
2025 Created by Dskyz, powered by DAFE Trading Systems. Trade smart, trade bold.
QuantumTrend SwiftEdgeQuantumTrend SwiftEdge - A Trend-Following Indicator for TradingView
Overview:
QuantumTrend SwiftEdge is a visually engaging and customizable trend-following indicator that combines the power of Supertrend, Keltner Channels, and a 100-period EMA to generate precise buy and sell signals. Designed to help traders identify trends and breakouts, this indicator offers a unique blend of technical tools with a modern gradient color effect, making it both functional and visually appealing.
What It Does:
This indicator identifies trend directions and potential entry/exit points:
- Supertrend determines the overall trend direction, showing a green line below the price during uptrends and a red line above the price during downtrends. The line only appears when the price is close to it, indicating an active trend.
- Keltner Channels highlight volatility and breakouts, with the upper and lower bands dynamically adjusting to market conditions.
- A 100-period EMA provides a longer-term trend perspective, helping to filter out noise.
- Buy and sell signals are generated when specific conditions align across these indicators, ensuring robust trade setups.
How It Works:
The indicator uses three components to generate signals:
1. **Supertrend**: Calculates trend direction using the Average True Range (ATR) and a multiplier. It switches between uptrend (green) and downtrend (red) based on price movements relative to the Supertrend line.
2. **Keltner Channels**: Consists of an EMA (default 20 periods) with upper and lower bands based on ATR. A breakout above the upper band signals potential buying opportunities, while a breakout below the lower band signals potential selling opportunities.
3. **100-period EMA**: Acts as a trend filter, ensuring signals align with the broader market direction.
**Buy Signal**:
- Price is above the 100-period EMA (bullish market).
- Price breaks above the Keltner Channel upper band (indicating a breakout).
- Supertrend switches to an uptrend (trend changes from down to up).
**Sell Signal**:
- Price is below the 100-period EMA (bearish market).
- Price breaks below the Keltner Channel lower band (indicating a breakout).
- Supertrend switches to a downtrend (trend changes from up to down).
Visual Features:
- **Gradient Colors**: Supertrend lines and Keltner Channels use a smooth gradient color transition between green (uptrend) and red (downtrend), reflecting the trend's strength. The gradient is based on a smoothed trend value, creating a visually appealing effect.
- **Keltner Channel Fill**: The area between the upper and lower Keltner Channels is filled with a transparent gradient, enhancing the trend visualization.
- **Dynamic Supertrend Visibility**: Supertrend lines only appear when the price is close to the line (within an ATR-based threshold), indicating an active trend.
How to Use:
1. Add the "QuantumTrend SwiftEdge" indicator to your chart in TradingView.
2. Customize the settings:
- **Signal Sensitivity (1=Low, 5=High)**: Default is 3. Lower values (e.g., 1) make signals less frequent by using wider parameters, while higher values (e.g., 5) make signals more frequent by tightening parameters.
- **Use Manual Settings**: If enabled, you can manually adjust all parameters (ATR Period, ATR Multiplier, Keltner Channel Length, Keltner Channel Multiplier, Keltner ATR Length, EMA Length) to fine-tune the indicator.
- **Change ATR Calculation Method**: Toggle between standard ATR calculation and a simple moving average of true range.
- **Show Buy/Sell Signals**: Toggle to show or hide buy (green "Buy" label) and sell (red "Sell" label) signals.
- **Highlighter On/Off**: Toggle to show or hide the gradient fill between the price and Supertrend line when the line is visible.
3. Interpret the signals:
- A green "Buy" label below the price indicates a potential buying opportunity.
- A red "Sell" label above the price indicates a potential selling opportunity.
- Use the Keltner Channel gradient fill and Supertrend lines to confirm the trend direction and strength.
Why This Combination?
- **Supertrend** provides a robust trend-following mechanism, ensuring signals align with the market direction.
- **Keltner Channels** add a volatility component, identifying breakouts that often precede significant price movements.
- **100-period EMA** filters out noise, ensuring signals are generated in the context of the broader trend.
Together, these indicators create a balanced approach: Supertrend and EMA confirm the trend, while Keltner Channels pinpoint actionable entry and exit points. The gradient visuals and dynamic visibility make it easier to focus on active trends.
Originality:
QuantumTrend SwiftEdge stands out with its unique features:
- Gradient color transitions for a modern, dynamic look.
- A filled gradient between Keltner Channels, visually emphasizing the trend.
- Supertrend lines that only appear when the price is close, reducing clutter and focusing on active trends.
- Flexible settings with both sensitivity-based and manual adjustments for maximum customization.
Default Settings:
The default sensitivity is set to 3, providing a balanced approach for most markets and timeframes (e.g., 5-minute charts for crypto like BTC/USD). This setting uses moderate parameters (ATR Period=10, ATR Multiplier=3.0, Keltner Channel Length=20, Keltner Channel Multiplier=1.5, Keltner ATR Length=10, EMA Length=100). Users can adjust the sensitivity or switch to manual settings for more control.
Important Notes:
- This indicator is a tool to assist in identifying trends and potential entry/exit points. It does not guarantee profits and should be used in conjunction with other analysis and risk management practices.
- The signals are based on historical price data and do not predict future performance. Always test the indicator on a demo account before using it in live trading.
- The gradient effect is purely visual and does not affect the signal logic.
AllMA Trend Radar [trade_lexx]📈 AllMA Trend Radar is your universal trend analysis tool!
📊 What is AllMA Trend Radar?
AllMA Trend Radar is a powerful indicator that uses various types of Moving Averages (MA) to analyze trends and generate trading signals. The indicator allows you to choose from more than 30 different types of moving averages and adjust their parameters to suit your trading style.
💡 The main components of the indicator
📈 Fast and slow moving averages
The indicator uses two main lines:
- Fast MA (blue line): reacts faster to price changes
- Slow MA (red line): smoother, reflects a long-term trend
The combined use of fast and slow MA allows you to get trend confirmation and entry/exit points from the market.
🔄 Wide range of moving averages
There are more than 30 types of moving averages at your disposal:
- SMA: Simple moving average
- EMA: Exponential moving average
- WMA: Weighted moving average
- DEMA: double exponential MA
- TEMA: triple exponential MA
- HMA: Hull Moving Average
- LSMA: Moving average of least squares
- JMA: Eureka Moving Average
- ALMA: Arnaud Legoux Moving Average
- ZLEMA: moving average with zero delay
- And many others!
🔍 Indicator signals
1️⃣ Fast 🆚 Slow MA signals (intersection and ratio of fast and slow MA)
Up/Down signals (intersection)
- Buy (Up) signal:
- What happens: the fast MA crosses the slow MA from bottom to top
- What does the green triangle with the "Buy" label under the candle look
like - What does it mean: a likely upward trend reversal or an uptrend strengthening
- Sell signal (Down):
- What happens: the fast MA crosses the slow MA from top to bottom
- What does it look like: a red triangle with a "Sell" mark above the candle
- What does it mean: a likely downtrend reversal or an increase in the downtrend
Greater/Less signals (ratio)
- Buy signal (Greater):
- What happens: the fast MA becomes higher than the slow MA
- What does it look like: a green triangle with a "Buy" label under the candle
- What does it mean: the formation or confirmation of an uptrend
- Sell signal (Less):
- What happens: the fast MA becomes lower than the slow MA
- What does it look like: a red triangle with a "Sell" mark above the candle
- What does it mean: the formation or confirmation of a downtrend
2️⃣ Signals ⚡️ Fast MA (fast MA and price)
Up/Down signals (intersection)
- Buy signal (Up Fast):
- What happens: the price crosses the fast MA from bottom to top
- What does it look like: a green triangle with a "Buy" label under the candle
- What does it mean: a short-term price growth signal
- Sell signal (Down Fast):
- What happens: the price crosses the fast MA from top to bottom
- What does it look like: a red triangle with a "Sell" label above the candle
- What does it mean: a short-term price drop signal
Greater/Less signals (ratio)
- Buy signal (Greater Fast):
- What happens: the price is getting higher than the fast MA
- What does it look like: a green triangle with a "Buy" label under the candle
- What does it mean: the price is above the fast MA, which indicates an upward movement
- Sell signal (Less Fast):
- What happens: the price is getting lower than the fast MA
- What does it look like: a red triangle with a "Sell" mark above the candle
- What does it mean: the price is under the fast MA, which indicates a downward movement
3️⃣ Signals 🐢 Slow MA (slow MA and price)
Up/Down signals (intersection)
- Buy signal (Up Slow):
- What happens: the price crosses the slow MA from bottom to top
- What does it look like: a green triangle with a "Buy" label under the candle
- What does it mean: a potential medium-term upward trend reversal
- Sell signal (Down Slow):
- What happens: the price crosses the slow MA from top to bottom
- What does it look like: a red triangle with a "Sell" label above the candle
- What does it mean: a potential medium-term downward trend reversal
Greater/Less signals (ratio)
- Buy signal (Greater Slow):
- What happens: the price is getting above the slow MA
- What does it look like: a green triangle with a "Buy" label under the candle
- What does it mean: the price is above the slow MA, which indicates a strong upward movement
- Sell signal (Less Slow):
- What is happening: the price is getting below the slow MA
- What does it look like: a red triangle with a "Sell" mark above the candle
- What does it mean: the price is under the slow MA, which indicates a strong downward movement
🛠 Filters to filter out false signals
1️⃣ Minimum distance between the signals
- What it does: sets the minimum number of candles between signals of the same type
- Why it is needed: it prevents the appearance of too frequent signals, especially during periods of high volatility
- How to set it up: Set a different value for each signal type (default: 3-5 bars)
- Example: if the value is 3 for Up/Down signals, after the buy signal appears, the next buy signal may appear no earlier than 3 bars later
2️⃣ Advanced indicator filters
🔍 RSI Filter
- What it does: Checks the Relative Strength Index (RSI) value before generating a signal
- Why it is needed: it helps to avoid countertrend entries and catch reversal points
- How to set up:
- For buy signals (🔋 Buy): set the RSI range, usually in the oversold zone (for example, 1-30)
- For sell signals (🪫 Sell): set the RSI range, usually in the overbought zone (for example, 70-100)
- Example: if the RSI = 25 (in the range 1-30), the buy signal will be confirmed
📊 MFI Filter (Cash Flow Index)
- What it does: analyzes volumes and the direction of price movement
- Why it is needed: confirms signals with data on the activity of cash flows
- How to set up:
- For buy signals (🔋 Buy): set the MFI range in the oversold zone (for example, 1-25)
- For sell signals (🪫 Sell): set the MFI range in the overbought zone (for example, 75-100)
- Example: if MFI = 80 (in the range of 75-100), the sell signal will be confirmed
📈 Stochastic Filter
- What it does: analyzes the position of the current price relative to the price range
- Why it is needed: confirms signals based on overbought/oversold conditions
- How to configure:
- You can configure the K Length, D Length and Smoothing parameters
- For buy signals (🔋 Buy): set the stochastic range in the oversold zone (for example, 1-20)
- For sell signals (🪫 Sell): set the stochastic range in the overbought zone (for example, 80-100)
- Example: if stochastic = 15 (is in the range of 1-20), the buy signal will be confirmed
🔌 Connecting to trading strategies
The indicator provides various connectors to connect to your trading strategies.:
1️⃣ Individual connectors for each type of signal
- 🔌Fast vs Slow Up/Down MA Signal🔌: signals for the intersection of fast and slow MA
- 🔌Fast vs Slow Greater/Less MA Signal🔌: signals of the ratio of fast and slow MA
- 🔌Fast Up/Down MA Signal🔌: signals of the intersection of price and fast MA
- 🔌Fast Greater/Less MA Signal🔌: signals of the ratio of price and fast MA
- 🔌Slow Up/Down MA Signal🔌: signals of the intersection of price and slow MA
- 🔌Slow Greater/Less MA Signal🔌: Price versus slow MA signals
2️⃣ Combined connectors
- 🔌Combined Up/Down MA Signal🔌: combines all the crossing signals (Up/Down)
- 🔌Combined Greater/Less MA Signal🔌: combines all the signals of the ratio (Greater/Less)
- 🔌Combined All MA Signals🔌: combines all signals (Up/Down and Greater/Less)
❗️ All connectors return values:
- 1: buy signal
- -1: sell signal
- 0: no signal
📚 How to start using AllMA Trend Radar
1️⃣ Selection of types of moving averages
- Add an indicator to the chart
- Select the type and period for the fast MA (default: DEMA with a period of 14)
- Select the type and period for the slow MA (default: SMA with a period of 14)
- Experiment with different types of MA to find the best combination for your trading style
2️⃣ Signal settings
- Turn on the desired signal types (Up/Down, Greater/Less)
- Set the minimum distance between the signals
- Activate and configure the necessary filters (RSI, MFI, Stochastic)
3️⃣ Checking on historical data
- Analyze how the indicator works based on historical data
- Pay attention to the accuracy of the signals and the presence of false alarms
- Adjust the settings if necessary
4️⃣ Introduction to the trading strategy
- Decide which signals will be used to enter the position.
- Determine which signals will be used to exit the position.
- Connect the indicator to your trading strategy through the appropriate connectors
🌟 Practical application examples
Scalping strategy
- Fast MA: TEMA with a period of 8
- Slow MA: EMA with a period of 21
- Active signals: Fast MA Up/Down
- Filters: RSI (range 1-40 for purchases, 60-100 for sales)
- Signal spacing: 3 bars
Strategy for day trading
- Fast MA: TEMA with a period of 10
- Slow MA: SMA with a period of 20
- Active signals: Fast MA Up/Down and Fast vs Slow Greater/Less
- Filters: MFI (range 1-25 for purchases, 75-100 for sales)
- Signal spacing: 5 bars
Swing Trading Strategy
- Fast MA: DEMA with a period of 14
- Slow MA: VWMA with a period of 30
- Active signals: Fast vs Slow Up/Down and Slow MA Greater/Less
- Filters: Stochastic (range 1-20 for purchases, 80-100 for sales)
- Signal spacing: 8 bars
A strategy for positional trading
- Fast MA: HMA with a period of 21
- Slow MA: SMA with a period of 50
- Active signals: Slow MA Up/Down and Fast vs Slow Greater/Less
- Filters: RSI and MFI at the same time
- The distance between the signals: 10 bars
💡 Tips for using AllMA Trend Radar
1. Select the types of MA for market conditions:
- For trending markets: DEMA, TEMA, HMA (fast MA)
- For sideways markets: SMA, WMA, VWMA (smoothed MA)
- For volatile markets: KAMA, AMA, VAMA (adaptive MA)
2. Combine different types of signals:
- Up/Down signals work better when moving from a sideways trend to a directional
one - Greater/Less signals are optimal for fixing a stable trend
3. Use filters effectively:
- The RSI filter works great in trending markets
- MFI filter helps to confirm the strength of volume movement
- Stochastic filter works well in lateral ranges
4. Adjust the minimum distance between the signals:
- Small values (2-3 bars) for short-term trading
- Average values (5-8 bars) for medium-term trading
- Large values (10+ bars) for long-term trading
5. Use combination connectors:
- For more reliable signals, connect the indicator through the combined connectors
💰 With the AllMA Trend Radar indicator, you get a universal trend analysis tool that can be customized for any trading style and timeframe. The combination of different types of moving averages and advanced filters allows you to significantly improve the accuracy of signals and the effectiveness of your trading strategy!
Regime Filter IndicatorRegime Filter – Crypto Market Trend Indicator
📊 Overview
The Regime Filter is a powerful market analysis indicator designed specifically for crypto trading. It helps traders identify whether the market is in a bullish or bearish phase by analyzing key assets in the cryptocurrency market, including Bitcoin (BTC), Bitcoin Dominance (BTC.D), and the Altcoin Market (TOTAL3). The indicator compares these assets against their respective Simple Moving Averages (SMA) to determine the overall market regime, allowing traders to make more informed decisions.
🔍 How It Works
The Regime Filter evaluates three main components to determine the market's sentiment:
1. BTC Dominance (BTC.D) vs. 40 SMA (Medium Timeframe)
The Bitcoin Dominance (BTC.D) is compared to its 40-period SMA on a mid-timeframe (e.g.,
1-hour). If BTC.D is below the 40 SMA, it indicates that altcoins are performing well relative
to Bitcoin, suggesting a bullish altcoin market. If BTC.D is above the 40 SMA, Bitcoin is
gaining dominance, indicating a potential bearish phase for altcoins.
2. TOTAL3 Market Cap vs. 100 SMA (Medium Timeframe)
The TOTAL3 index, which tracks the total market capitalization of all cryptocurrencies except
Bitcoin and Ethereum, is compared to its 100-period SMA. A bullish signal occurs when TOTAL3
is above the 100 SMA, indicating strength in altcoins, while a bearish signal occurs when
TOTAL3 is below the 100 SMA, signaling a potential weakness in the altcoin market.
3. BTC Price vs. 200 SMA (Higher Timeframe)
The current Bitcoin price is compared to its 200-period Simple Moving Average (SMA) on a
higher timeframe (e.g., 4-hour). A bullish signal is given when the BTC price is above the 200
SMA, and a bearish signal when it's below.
🟢 Bullish Market Conditions
The market is considered bullish when:
- BTC Dominance (BTC.D) is below the 40 SMA, suggesting altcoins are gaining momentum.
- TOTAL3 Market Cap is above the 100 SMA, signaling strength in the altcoin market.
- BTC price is above the 200 SMA, indicating an uptrend in Bitcoin.
In these conditions, the background turns green 🟢, and a "Bullish" label is displayed on the chart.
🔴 Bearish Market Conditions
The market is considered bearish when:
- BTC Dominance (BTC.D) is above the 40 SMA, indicating Bitcoin is outperforming altcoins.
- TOTAL3 Market Cap is below the 100 SMA, signaling weakness in altcoins.
- BTC price is below the 200 SMA, indicating a downtrend in Bitcoin.
In these conditions, the background turns red 🔴, and a "Bearish" label appears on the chart.
⚙ Customization Options
- The Regime Filter offers flexibility for traders:
- Enable or Disable Specific SMAs: Customize the indicator by enabling or disabling the 200 SMA for Bitcoin, the 40 SMA for BTC Dominance, and the 100 SMA for TOTAL3.
- Adjust Timeframes: Choose the timeframes for each of the moving averages to suit your preferred trading strategy.
- Real-Time Data Adjustments: The indicator updates in real-time to reflect current market conditions, ensuring timely analysis.
📈 Best Use Cases
- Trend Confirmation: The Regime Filter is ideal for confirming the market's overall trend,
helping traders to align their positions with the dominant market sentiment.
- Trade Entry/Exit Signals: Use the indicator to identify favorable entry or exit points based on
whether the market is in a bullish or bearish phase.
- Market Overview: Gain a quick understanding of the broader crypto market, with a focus on
Bitcoin and altcoins, to make more strategic decisions.
⚠️ Important Notes
Trend-Following Indicator: The Regime Filter is a trend-following tool, meaning it works best in strong trending markets. It may not perform well in choppy, sideways markets.
Risk Management: This indicator is designed to assist in identifying market trends, but it does not guarantee profits. Always apply sound risk management strategies and use additional indicators when making trading decisions.
Not a Profit Guarantee: While this indicator can help identify potential market trends, no trading tool or strategy guarantees profits. Please trade responsibly and ensure that your decisions are based on comprehensive analysis and risk tolerance.
StatPivot- Dynamic Range Analyzer - indicator [PresentTrading]Hello everyone! In the following few open scripts, I would like to share various statistical tools that benefit trading. For this time, it is a powerful indicator called StatPivot- Dynamic Range Analyzer that brings a whole new dimension to your technical analysis toolkit.
This tool goes beyond traditional pivot point analysis by providing comprehensive statistical insights about price movements, helping you identify high-probability trading opportunities based on historical data patterns rather than subjective interpretations. Whether you're a day trader, swing trader, or position trader, StatPivot's real-time percentile rankings give you a statistical edge in understanding exactly where current price action stands within historical contexts.
Welcome to share your opinions! Looking forward to sharing the next tool soon!
█ Introduction and How it is Different
StatPivot is an advanced technical analysis tool that revolutionizes retracement analysis. Unlike traditional pivot indicators that only show static support/resistance levels, StatPivot delivers dynamic statistical insights based on historical pivot patterns.
Its key innovation is real-time percentile calculation - while conventional tools require new pivot formations before updating (often too late for trading decisions), StatPivot continuously analyzes where current price stands within historical retracement distributions.
Furthermore, StatPivot provides comprehensive statistical metrics including mean, median, standard deviation, and percentile distributions of price movements, giving traders a probabilistic edge by revealing which price levels represent statistically significant zones for potential reversals or continuations. By transforming raw price data into statistical insights, StatPivot helps traders move beyond subjective price analysis to evidence-based decision making.
█ Strategy, How it Works: Detailed Explanation
🔶 Pivot Point Detection and Analysis
The core of StatPivot's functionality begins with identifying significant pivot points in the price structure. Using the parameters left and right, the indicator locates pivot highs and lows by examining a specified number of bars to the left and right of each potential pivot point:
Copyp_low = ta.pivotlow(low, left, right)
p_high = ta.pivothigh(high, left, right)
For a point to qualify as a pivot low, it must have left higher lows to its left and right higher lows to its right. Similarly, a pivot high must have left lower highs to its left and right lower highs to its right. This approach ensures that only significant turning points are recognized.
🔶 Percentage Change Calculation
Once pivot points are identified, StatPivot calculates the percentage changes between consecutive pivot points:
For drops (when a pivot low is lower than the previous pivot low):
CopydropPercent = (previous_pivot_low - current_pivot_low) / previous_pivot_low * 100
For rises (when a pivot high is higher than the previous pivot high):
CopyrisePercent = (current_pivot_high - previous_pivot_high) / previous_pivot_high * 100
These calculations quantify the magnitude of each market swing, allowing for statistical analysis of historical price movements.
🔶 Statistical Distribution Analysis
StatPivot computes comprehensive statistics on the historical distribution of drops and rises:
Average (Mean): The arithmetic mean of all recorded percentage changes
CopyavgDrop = array.avg(dropValues)
Median: The middle value when all percentage changes are arranged in order
CopymedianDrop = array.median(dropValues)
Standard Deviation: Measures the dispersion of percentage changes from the average
CopystdDevDrop = array.stdev(dropValues)
Percentiles (25th, 75th): Values below which 25% and 75% of observations fall
Copyq1 = array.get(sorted, math.floor(cnt * 0.25))
q3 = array.get(sorted, math.floor(cnt * 0.75))
VaR95: The maximum expected percentage drop with 95% confidence
Copyvar95D = array.get(sortedD, math.floor(nD * 0.95))
Coefficient of Variation (CV): Measures relative variability
CopycvD = stdDevDrop / avgDrop
These statistics provide a comprehensive view of market behavior, enabling traders to understand the typical ranges and extreme moves.
🔶 Real-time Percentile Ranking
StatPivot's most innovative feature is its real-time percentile calculation. For each current price, it calculates:
The percentage drop from the latest pivot high:
CopycurrentDropPct = (latestPivotHigh - close) / latestPivotHigh * 100
The percentage rise from the latest pivot low:
CopycurrentRisePct = (close - latestPivotLow) / latestPivotLow * 100
The percentile ranks of these values within the historical distribution:
CopyrealtimeDropRank = (count of historical drops <= currentDropPct) / total drops * 100
This calculation reveals exactly where the current price movement stands in relation to all historical movements, providing crucial context for decision-making.
🔶 Cluster Analysis
To identify the most common retracement zones, StatPivot performs a cluster analysis by dividing the range of historical drops into five equal intervals:
CopyrangeSize = maxVal - minVal
For each interval boundary:
Copyboundaries = minVal + rangeSize * i / 5
By counting the number of observations in each interval, the indicator identifies the most frequently occurring retracement zones, which often serve as significant support or resistance areas.
🔶 Expected Price Targets
Using the statistical data, StatPivot calculates expected price targets:
CopytargetBuyPrice = close * (1 - avgDrop / 100)
targetSellPrice = close * (1 + avgRise / 100)
These targets represent statistically probable price levels for potential entries and exits based on the average historical behavior of the market.
█ Trade Direction
StatPivot functions as an analytical tool rather than a direct trading signal generator, providing statistical insights that can be applied to various trading strategies. However, the data it generates can be interpreted for different trade directions:
For Long Trades:
Entry considerations: Look for price drops that reach the 70-80th percentile range in the historical distribution, suggesting a statistically significant retracement
Target setting: Use the Expected Sell price or consider the average rise percentage as a reasonable target
Risk management: Set stop losses below recent pivot lows or at a distance related to the statistical volatility (standard deviation)
For Short Trades:
Entry considerations: Look for price rises that reach the 70-80th percentile range, indicating an unusual extension
Target setting: Use the Expected Buy price or average drop percentage as a target
Risk management: Set stop losses above recent pivot highs or based on statistical measures of volatility
For Range Trading:
Use the most common drop and rise clusters to identify probable reversal zones
Trade bounces between these statistically significant levels
For Trend Following:
Confirm trend strength by analyzing consecutive higher pivot lows (uptrend) or lower pivot highs (downtrend)
Use lower percentile retracements (20-30th percentile) as entry opportunities in established trends
█ Usage
StatPivot offers multiple ways to integrate its statistical insights into your trading workflow:
Statistical Table Analysis: Review the comprehensive statistics displayed in the data table to understand the market's behavior. Pay particular attention to:
Average drop and rise percentages to set reasonable expectations
Standard deviation to gauge volatility
VaR95 for risk assessment
Real-time Percentile Monitoring: Watch the real-time percentile display to see where the current price movement stands within the historical distribution. This can help identify:
Extreme movements (90th+ percentile) that might indicate reversal opportunities
Typical retracements (40-60th percentile) that might continue further
Shallow pullbacks (10-30th percentile) that might represent continuation opportunities in trends
Support and Resistance Identification: Utilize the plotted pivot points as key support and resistance levels, especially when they align with statistically significant percentile ranges.
Target Price Setting: Use the expected buy and sell prices calculated from historical averages as initial targets for your trades.
Risk Management: Apply the statistical measurements like standard deviation and VaR95 to set appropriate stop loss levels that account for the market's historical volatility.
Pattern Recognition: Over time, learn to recognize when certain percentile levels consistently lead to reversals or continuations in your specific market, and develop personalized strategies based on these observations.
█ Default Settings
The default settings of StatPivot have been carefully calibrated to provide reliable statistical analysis across a variety of markets and timeframes, but understanding their effects allows for optimal customization:
Left Bars (30) and Right Bars (30): These parameters determine how pivot points are identified. With both set to 30 by default:
A pivot low must be the lowest point among 30 bars to its left and 30 bars to its right
A pivot high must be the highest point among 30 bars to its left and 30 bars to its right
Effect on performance: Larger values create fewer but more significant pivot points, reducing noise but potentially missing important market structures. Smaller values generate more pivot points, capturing more nuanced movements but potentially including noise.
Table Position (Top Right): Determines where the statistical data table appears on the chart.
Effect on performance: No impact on analytical performance, purely a visual preference.
Show Distribution Histogram (False): Controls whether the distribution histogram of drop percentages is displayed.
Effect on performance: Enabling this provides visual insight into the distribution of retracements but can clutter the chart.
Show Real-time Percentile (True): Toggles the display of real-time percentile rankings.
Effect on performance: A critical setting that enables the dynamic analysis of current price movements. Disabling this removes one of the key advantages of the indicator.
Real-time Percentile Display Mode (Label): Chooses between label display or indicator line for percentile rankings.
Effect on performance: Labels provide precise information at the current price point, while indicator lines show the evolution of percentile rankings over time.
Advanced Considerations for Settings Optimization:
Timeframe Adjustment: Higher timeframes generally benefit from larger Left/Right values to identify truly significant pivots, while lower timeframes may require smaller values to capture shorter-term swings.
Volatility-Based Tuning: In highly volatile markets, consider increasing the Left/Right values to filter out noise. In less volatile conditions, lower values can help identify more potential entry and exit points.
Market-Specific Optimization: Different markets (forex, stocks, commodities) display different retracement patterns. Monitor the statistics table to see if your market typically shows larger or smaller retracements than the current settings are optimized for.
Trading Style Alignment: Adjust the settings to match your trading timeframe. Day traders might prefer settings that identify shorter-term pivots (smaller Left/Right values), while swing traders benefit from more significant pivots (larger Left/Right values).
By understanding how these settings affect the analysis and customizing them to your specific market and trading style, you can maximize the effectiveness of StatPivot as a powerful statistical tool for identifying high-probability trading opportunities.
Composite Indicator (CCI + ATR)Composite Indicator (CCI + ATR)
The Composite Indicator (CCI + ATR) combines the Commodity Channel Index (CCI) with the Average True Range (ATR) , providing traders with a dynamic tool for identifying entry and exit points based on momentum and volatility. This indicator is particularly useful for markets like cryptocurrencies, which often exhibit sharp sell-offs and gradual upward trends.
Key Features
Momentum Analysis with CCI: The CCI calculates price momentum by comparing the current price level to its average over a specific period. The indicator generates signals when CCI crosses predefined thresholds.
- Buy Signal: Triggered when CCI crosses above the lower threshold (e.g., -100).
- Sell Signal: Triggered when CCI crosses below the upper threshold (e.g., +100).
Volatility Filtering with ATR: The ATR measures market volatility, ensuring signals occur only during significant price movements.
Separate multipliers for buy and sell signals allow tailored filtering based on market behavior.
Stop Loss Calculation: Dynamic stop loss levels are calculated using the ATR multiplier to adapt to market volatility, offering better risk management.
How It Works
CCI Calculation: The CCI is calculated using the typical price ((High + Low + Close) / 3) and a user-defined length. It detects momentum changes by measuring deviations from the average price.
ATR Calculation: The ATR determines the average price range over a specified period, identifying the market’s volatility. The ATR SMA acts as a baseline to filter signals.
Buy Signal: A buy signal is triggered when:
- CCI crosses above the lower threshold (e.g., -100).
- ATR exceeds its SMA multiplied by the buy multiplier (e.g., 1.0).
Sell Signal: A sell signal is triggered when:
- CCI crosses below the upper threshold (e.g., +100).
- ATR exceeds its SMA multiplied by the sell multiplier (e.g., 0.95).
Stop Loss Integration:
- Long positions: Stop loss = Low – (ATR * ATR Multiplier)
- Short positions: Stop loss = High + (ATR * ATR Multiplier)
Advantages
Combines momentum (CCI) and volatility (ATR) for precise signal generation.
Customizable thresholds and multipliers for different market conditions.
Dynamic stop loss ensures better risk management in volatile markets.
Suggested Parameter Settings
CCI Length: 20 (default). Adjust as follows:
- 10–15: Shorter timeframes (e.g., 5-15 minutes).
- 20: General use for 1-hour timeframes.
- 30–50: Longer timeframes (e.g., 4-hour or daily charts).
CCI Threshold: 100 (default). Adjust as follows:
- 50–75: For more frequent signals in ranging markets.
- 100: Balanced for most trading conditions.
- 150–200: For strong trends to reduce noise.
ATR Length: 14 (default). Adjust as follows:
- 10–14: For assets with moderate volatility.
- 20: For assets with lower volatility.
ATR Buy Multiplier: 1.0 (default). Adjust as follows:
- 0.9–1.0: For gradual uptrends in crypto markets.
- 1.1–1.2: For stronger trend filtering.
ATR Sell Multiplier: 0.95 (default). Adjust as follows:
- 0.8–0.95: For sharp sell-offs.
- 1.0–1.1: For stable downward trends.
ATR Multiplier (Stop Loss): 1.5 (default). Adjust as follows:
- 1.0–1.2: For shorter timeframes or less volatile markets.
- 2.0–2.5: For highly volatile markets like cryptocurrencies.
Example Use Cases
Scalping (5-15 minute charts): Use CCI Length = 10, CCI Threshold = 75, ATR Buy Multiplier = 0.9, ATR Sell Multiplier = 0.8.
Day Trading (1-hour charts): Use CCI Length = 20, CCI Threshold = 100, ATR Buy Multiplier = 1.0, ATR Sell Multiplier = 0.95.
Swing Trading (4-hour or daily charts): Use CCI Length = 30, CCI Threshold = 150, ATR Buy Multiplier = 1.2, ATR Sell Multiplier = 1.0.
Final Thoughts The Composite Indicator (CCI + ATR) is a versatile tool designed to enhance trading decisions by combining momentum analysis with volatility filtering. Whether scalping or swing trading, this indicator provides actionable insights and robust risk management to navigate complex markets effectively.