SHK CCI 6 MA BOLLINGER BANDS RSI DUAL DIVERGENCE
SHK CCI 6 MA BOLLINGER BANDS RSI DUAL DIVERGENCE
A dual-oscillator divergence engine that runs CCI and RSI side-by-side in the same pane, cross-confirms divergence signals between them, and wraps the CCI line in an adaptive Bollinger Band for volatility context.
What it does
This indicator plots three things in one pane:
CCI (Commodity Channel Index), colored by trend state and filtered through a selectable signal moving average
RSI (Relative Strength Index), colored by 50-midline bias
A Bollinger Band envelope around the CCI line for spotting volatility expansion/contraction
On top of that, it independently scans both CCI and RSI for regular bullish/bearish divergence against price, and flags the bars where both oscillators agree — a higher-confidence signal than either alone.
How the signal engine works
CCI = (source − SMA(source)) / (0.015 × mean deviation), using HLC3 by default
Signal MA: the CCI line is compared against a moving average of itself to determine trend bias (CCI ≥ MA = bullish tint, CCI < MA = bearish tint). Choose from six MA types: SMA, EMA, ALMA, DEMA, QEMA, DWMA
DEMA/QEMA/DWMA are custom-built (not native to Pine) — DEMA is a double-smoothed EMA, QEMA is a quadruple-nested EMA, DWMA is a double-smoothed WMA. Higher smoothing = fewer whipsaws, more lag
RSI runs on its own independent length setting (separate from the CCI length), so you can tune sensitivity for each oscillator without them fighting each other
Divergence detection uses pivot highs/lows on both CCI and RSI, checked against price action within a configurable bar-distance window (so old, stale pivots don't get matched against fresh ones)
CCI Bollinger Bands: a standard basis ± multiplier × standard deviation envelope calculated on either the raw CCI value or the Signal MA (your choice), letting you see when CCI is stretching outside its normal range
How to read the chart
Element What it means
CCI line color Green/teal shades = CCI above its Signal MA (bullish bias); red/pink shades = CCI below (bearish bias). Deeper/brighter shade = also above/below the zero line, i.e. stronger confluence
Signal MA line Green when the underlying Heikin-Ashi candle is bullish, red when bearish
RSI line Blue above 50, orange below 50
Purple bands around CCI Bollinger envelope — CCI pushing outside the bands signals unusually strong momentum for the current length setting
Fill between CCI and Signal MA Green fill = CCI trending above MA, red fill = CCI trending below
White dashed lines (OB/OS) Customizable overbought/oversold reference levels for CCI (defaults: +100 / −200)
White solid line at 35 Fixed RSI reference level
Labels — how to identify each signal
"C" (aqua, pointing up) — CCI regular bullish divergence: price makes a lower low, CCI makes a higher low
"C" (orange, pointing down) — CCI regular bearish divergence: price makes a higher high, CCI makes a lower high
"R" (green, pointing up) — RSI regular bullish divergence
"R" (red, pointing down) — RSI regular bearish divergence
"D" (lime, larger, pointing up) — Dual confirmation: CCI and RSI both show bullish divergence on the same swing — the strongest bullish signal this script produces
"D" (red, larger, pointing down) — Dual confirmation bearish — the strongest bearish signal this script produces
The "D" labels are the ones to weight most heavily; the standalone "C"/"R" labels are useful context but are single-oscillator signals and appear more frequently.
Inputs, grouped as they appear in settings
CCI Settings — CCI length, source, Signal MA type, Signal MA length
RSI Settings — RSI length (independent of CCI length)
MA Params — ALMA offset/sigma (only relevant if Signal MA Type = ALMA)
Levels — Overbought/Oversold reference lines for CCI
Features — toggle divergence detection on/off entirely
Bollinger Bands - CCI — show/hide, length, multiplier, and whether the band wraps the raw CCI value or the Signal MA
Divergence — pivot lookback (left/right bars) and min/max bar distance between pivots used to validate a divergence
Suggested use
Use the "D" dual-confirmation labels as your primary trigger, and the individual "C"/"R" labels as early warning / confluence-building context
Widen the CCI Bollinger Band multiplier on choppier instruments to reduce noise; tighten it on trending instruments to catch momentum extremes earlier
Try DEMA/QEMA/DWMA as the Signal MA type if you find the default ALMA too reactive or too laggy for your timeframe — each trades off responsiveness against whipsaw filtering differently
Works on any timeframe and instrument; divergence-based tools generally perform best combined with a higher-timeframe trend filter or support/resistance context rather than in isolation
Notes
This is a visual/analytical tool, not a standalone buy/sell signal generator — treat divergence as one input among several in your decision process, not a mechanical trigger
Divergence signals are confirmed only after the right-side pivot lookback bars have closed, so labels appear with a small lag by design (this avoids repainting on the pivot itself)
Disclaimer
This script is for educational and informational purposes only and does not constitute financial advice. It is not a recommendation to buy or sell any security or instrument. Trading and investing involve substantial risk of loss and are not suitable for every investor. Past performance, including any backtested or simulated results, is not indicative of future results.
Always analyze the indicator's behavior across different market conditions and backtest thoroughly on your own instruments and timeframes before using it in live trading. Trade at your own risk — you are solely responsible for your own trading decisions. Indicator

The Curly ShuffleThe Curly Shuffle
This is a dual CCI oscillator built around one question. When a market has run to an extreme and starts coming back, do both the fast and the slow reading of momentum agree that the run is finished?
A single CCI crossing back inside a threshold is a common event, and on its own it means very little, since it happens constantly in the middle of strong trends. Requiring two CCIs of different speeds to make that same crossing within a few bars of each other is a far narrower condition. The fast line almost always moves first, so what you are really asking is whether the slower and more structural view confirms what the fast one just did, and whether it confirms soon enough that the two are describing the same event rather than two unrelated ones.
How the signal works
The script plots two CCIs on typical price. The slow one defaults to 55 periods and the fast one to 21. Both are watched at a threshold of 170 and negative 170.
A short fires on the bar where the second of the two lines crosses back below 170, provided the first one crossed within the window you set, which defaults to 5 bars. A long fires on the mirror condition at negative 170. A cooldown of 6 bars prevents a line whipsawing across the threshold from producing a cluster of repeat signals. There is also an optional filter, off by default, that requires each line to have travelled a minimum distance past the threshold before its return counts, which stops a CCI that barely touched 171 from carrying the same weight as one that ran to 400.
These defaults are deliberately slow and the threshold is deliberately far out. A 55 period CCI beyond 170 is roughly two and a half mean deviations away from its own moving average, which is not an everyday occurrence, and requiring the 21 period line to be out there with it narrows things further. Expect this to be an infrequent signal on higher timeframes. If you want more of them, shorten both periods together to preserve the speed ratio, or bring the threshold down toward 100, rather than widening the window, which loosens the relationship between the two crossings instead of loosening the setup itself.
The scale
Clamping an oscillator at a fixed ceiling destroys exactly the information you want during capitulation or euphoria, because a reading of 500 and a reading of 250 draw the same flat line. This script does something different. Inside the threshold the plot is completely linear and untouched, so the trigger levels sit where they actually belong. Beyond the threshold the excess is compressed so that the plot approaches a cap of 250 without ever reaching it. The compression softness of 185 controls how gradually that happens. Ordering is preserved throughout, so a more extreme reading always draws further out than a less extreme one, just with tightening spacing. Every calculation behind the signals uses the raw uncompressed values.
Because the visual is compressed above the threshold, a small table shows the true numbers, along with a running count of signals and two diagnostics described below.
Reading the table
Mean gap tells you the average number of bars between the two crossings across every signal so far. Use it to set your window from measured behaviour rather than guesswork. If the mean gap on your instrument and timeframe comes back at 2, a window of 5 is letting through pairs that are not really related.
Fast leads tells you how often the fast CCI crossed first. If that figure sits near 50 percent, the two lines are not in a lead and confirm relationship at all, they are just both crossing a threshold independently, and the pairing rule is not adding information. That is a signal to widen the gap between the two periods.
Notes
Background shading marks stretches where the slow CCI has held one side of zero for 6 or more bars, which is the classic Woodies idea of a trend run.
Signals are evaluated on closing values. A marker can appear and disappear while a bar is still forming and should only be treated as final once the bar closes. The alert is set for once per bar close for the same reason.
This is a signal generator, not a strategy. It produces no stops, no targets and no position sizing, and it makes no claim about profitability. Fading an extreme is a difficult approach and deserves testing on your own instruments before any capital goes near it. The same detector is equally valid read as a continuation signal, since a return inside the threshold during a trend often marks the end of a pullback rather than the end of a move, and comparing both readings on the same data is worth doing. This is not financial advice. Indicator

Hybrid OscillatorHybrid Oscillator
Hybrid Oscillator is a visual oscillator designed to read momentum pressure, overbought conditions, oversold conditions, oscillator crosses, extreme zones and directional fading inside a separate chart pane.
the indicator combines a selected oscillator engine with a smoothed wave, a secondary cross line, gradient zones, level dots and alert conditions.
the goal is to help traders understand when momentum is expanding, when it is reaching an extreme area, when it is cooling down, and when the main oscillator line crosses its reference line.
this tool is not a trading strategy. it does not place trades, does not guarantee reversals and does not predict future price movement. it is a technical analysis tool for market context, momentum reading and visual confirmation.
main concept
the oscillator moves between 0 and 100.
values near the upper zone show stronger upside pressure or overbought conditions.
values near the lower zone show stronger downside pressure or oversold conditions.
the main oscillator line is the active momentum wave.
the real cross line is a smoother reference line.
when the main oscillator crosses above the real cross line, momentum may be recovering or shifting upward.
when the main oscillator crosses below the real cross line, momentum may be weakening or shifting downward.
what the indicator displays
main oscillator line
real cross line
upper and lower gradient zones
overbought level
oversold level
extreme overbought level
extreme oversold level
mid upper level
mid lower level
top extreme dots
bottom extreme dots
real cross dots
level lines
alert conditions
oscillator engines
the script includes several oscillator calculation modes.
rsi
uses relative strength index behavior.
this mode is useful for reading classic momentum strength and overbought or oversold behavior.
stochastic
uses stochastic positioning.
this mode focuses on where price is closing compared to its recent high and low range.
hybrid rsi plus stochastic
uses rsi first, then applies a stochastic calculation to the rsi behavior.
this mode focuses on momentum position inside the rsi range and gives a more reactive exhaustion style.
cci normalized
uses commodity channel index behavior and normalizes it into a 0 to 100 style range.
this mode can be useful for reading broader deviation and momentum pressure.
how the real cross line works
the real cross line is a smoothed version of the active oscillator.
it is not a separate oscillator type. it follows the selected engine.
if rsi mode is selected, the cross line follows the rsi-based oscillator.
if stochastic mode is selected, the cross line follows the stochastic-based oscillator.
if hybrid mode is selected, the cross line follows the hybrid oscillator.
if cci normalized mode is selected, the cross line follows the normalized cci oscillator.
the cross dots are based on the actual intersection between the main oscillator and the real cross line.
orange cross dots show an upward cross.
magenta cross dots show a downward cross.
input guide
source
selects the price source used by the oscillator.
common choices are close, hl2, hlc3 or ohlc4.
close is simple and reactive.
hlc3 is smoother because it includes high, low and close.
length
controls the base oscillator calculation period.
a lower value makes the oscillator faster and more sensitive.
a higher value makes the oscillator smoother and slower.
smoothing
controls the smoothing applied to the final oscillator.
a lower value reacts faster.
a higher value reduces noise but adds more delay.
oscillator type
selects the calculation engine.
rsi is classic momentum.
stochastic is range position.
hybrid rsi plus stochastic is a more sensitive momentum range model.
cci normalized is a deviation-based momentum model.
extreme overbought
sets the upper extreme zone.
when the oscillator reaches this area, upside momentum is considered stretched.
overbought
sets the main upper warning level.
crossing this level can mark a strong bullish extension.
mid upper
sets the upper midline reference.
this can be used to detect smaller upward crosses around the upper balance area.
mid lower
sets the lower midline reference.
this can be used to detect smaller downward crosses around the lower balance area.
oversold
sets the main lower warning level.
crossing this level can mark a strong bearish extension.
extreme oversold
sets the lower extreme zone.
when the oscillator reaches this area, downside momentum is considered stretched.
enable gradient fills
turns the upper and lower visual gradient zones on or off.
when enabled, the oscillator pane becomes easier to read visually.
gradient layers
controls the number of visual layers used for the gradient style.
more layers create a smoother visual feel.
show level cross dots
shows or hides the dots created by cross conditions and extreme conditions.
show real cross line
shows or hides the smoother cross reference line.
this line is useful when you want to see exactly where the oscillator cross dots come from.
show level lines
shows or hides the horizontal reference lines.
these lines help identify overbought, oversold, extreme and midpoint areas.
oscillator line width
controls the thickness of the main oscillator line.
higher values make the oscillator more visible.
lower values keep the chart cleaner.
how to read the dots
top extreme dots
these appear when the oscillator is inside the extreme overbought zone.
they indicate strong upside extension.
they do not mean price must reverse immediately.
bottom extreme dots
these appear when the oscillator is inside the extreme oversold zone.
they indicate strong downside extension.
they do not mean price must reverse immediately.
orange cross dots
these appear when the main oscillator crosses above the real cross line.
they can show a possible upward momentum shift.
magenta cross dots
these appear when the main oscillator crosses below the real cross line.
they can show a possible downward momentum shift.
important note about dots
cross dots are not automatic buy or sell signals.
they show technical events inside the oscillator.
always confirm with trend, support and resistance, candle close, volume and risk management.
alerts
the script includes alert conditions for:
cross above the real cross line
cross below the real cross line
cross above overbought
cross below oversold
cross above extreme overbought
cross below extreme oversold
recommended beginner alert use
start with real cross up and real cross down.
use overbought and oversold alerts only as context.
use extreme alerts as exhaustion warnings, not direct trade signals.
avoid activating every alert at once if you want a clean workflow.
beginner tutorial
step 1: start with the default oscillator type
begin with hybrid rsi plus stochastic.
this mode gives a balanced view between momentum and range behavior.
step 2: keep the default levels
use the default overbought, oversold and extreme levels first.
do not change too many settings before understanding the oscillator behavior.
step 3: enable the real cross line
turn on the real cross line to see where cross dots come from.
when the oscillator crosses above the line, upward momentum may be improving.
when the oscillator crosses below the line, momentum may be weakening.
step 4: read the zones
above overbought, the market is showing strong upside momentum.
below oversold, the market is showing strong downside momentum.
inside the middle area, the market is more balanced.
step 5: read extremes carefully
extreme overbought can show strong bullish pressure.
extreme oversold can show strong bearish pressure.
an extreme does not guarantee a reversal.
strong markets can stay extreme longer than expected.
step 6: confirm with price action
before using any oscillator event, check the main chart.
look for:
trend direction
support and resistance
market structure
candle close
volume reaction
higher timeframe context
risk to reward
step 7: keep the chart clean
do not use every signal as an entry.
focus on the main oscillator, real cross line, extreme zones and a few important dots.
example 1: upward cross from the lower zone
the oscillator is near the oversold area.
then it crosses above the real cross line.
an orange dot appears at the real cross.
this can suggest that downside momentum is cooling and upward pressure may be starting.
a beginner should wait for price confirmation, such as a higher low, bullish candle close or break of short-term resistance.
example 2: downward cross from the upper zone
the oscillator is near the overbought area.
then it crosses below the real cross line.
a magenta dot appears at the real cross.
this can suggest that upside momentum is weakening.
a beginner should wait for price confirmation, such as rejection, lower high or break of short-term support.
example 3: extreme overbought continuation
the oscillator reaches the extreme overbought zone.
top extreme dots appear.
this means momentum is very strong to the upside.
it does not mean a sell signal is confirmed.
in a strong trend, the oscillator can remain high while price continues moving upward.
example 4: extreme oversold continuation
the oscillator reaches the extreme oversold zone.
bottom extreme dots appear.
this means momentum is very strong to the downside.
it does not mean a buy signal is confirmed.
in a strong downtrend, the oscillator can remain low while price continues moving downward.
example 5: using the cross line for timing
price is near support.
the oscillator is low.
the oscillator crosses above the real cross line.
an orange dot appears.
this can be used as an early momentum recovery warning, but the trader should still wait for price structure confirmation before making a decision.
example 6: using overbought as context
price is in an uptrend.
the oscillator crosses above the overbought level.
this confirms strong bullish pressure.
instead of shorting immediately, a beginner can watch for continuation or wait for a later loss of momentum.
best use cases
momentum reading
overbought and oversold context
detecting oscillator cross events
watching exhaustion zones
supporting reversal analysis
supporting trend continuation analysis
building alert-based watchlists
confirming price action with momentum context
recommended beginner setup
oscillator type: hybrid rsi plus stochastic
length: 14
smoothing: 3
show real cross line: on
show level cross dots: on
show level lines: on
enable gradient fills: on
use cross dots as warnings
use extreme dots as context
confirm every idea on the price chart
practical workflow
first, identify the current trend on the main chart.
second, check whether the oscillator is near the upper, middle or lower zone.
third, watch the real cross line.
fourth, note any orange or magenta cross dot.
fifth, check whether price confirms the oscillator event.
sixth, define invalidation and risk before any trade idea.
seventh, avoid taking signals against a strong trend without extra confirmation.
limitations
the oscillator is based on historical price data.
signals can appear late during fast moves.
extreme zones can stay extreme during strong trends.
cross dots are momentum events, not guaranteed reversals.
the tool should not be used alone.
risk note
this indicator is designed for technical analysis and educational market study. it does not provide financial advice, investment advice or guaranteed trading signals. all dots, levels, crosses, alerts and visual zones are references that require independent confirmation and proper risk management.
Indicator

V/S Dual CCI Strategy SignalDual CCI Strategy Signal — PulseWire Indicator Description (English)
Overview
This indicator generates buy/sell signals based on two independent CCI (Commodity Channel Index) indicators with customizable timeframes, smoothing methods, and filters.
The primary signal comes from CCI1 crossing its smoothed moving average (MA). Additional filters using overbought/oversold zones (for both CCI1 and CCI2) help reduce false signals and allow trading only when a recent momentum extreme occurred.
How it works
CCI1 (primary) – calculates CCI on its own timeframe (or current chart timeframe).
MA1 – smoothed version of CCI1 (SMA, EMA, WMA, etc.).
Signal – a crossover of CCI1 and MA1 gives a Long signal; a crossunder gives a Short signal.
Filters (optional):
CCI1 zone filter – requires that CCI1 touched the oversold zone (for Long) or overbought zone (for Short) within the last N bars (lookback).
CCI2 MA neutral zone filter – prevents trading when CCI2's smoothed MA is inside a defined neutral range (e.g., -100 to +100).
CCI2 zone filter – requires that CCI2 (not its MA) touched oversold/overbought levels within the last N bars.
All filters can be individually enabled/disabled. When disabled, the signal relies only on the CCI1/MA1 crossover.
Input Parameters
CCI1 (Primary)
Timeframe – timeframe for CCI1 calculation (leave empty to use chart timeframe).
Source – price source (default: hlc3).
Length – CCI period (default: 20).
MA Type – smoothing type for CCI1 (None, SMA, SMA + Bollinger Bands, EMA, SMMA (RMA), WMA, VWMA).
MA Length – length of the smoothing MA (default: 14).
BB StdDev – standard deviation multiplier for Bollinger Bands (if selected).
CCI2 (Higher TF / confirmation)
Timeframe – timeframe for CCI2 (e.g., 1D, 4H).
Source, Length, MA Type, MA Length, BB StdDev – same as for CCI1.
Filters
CCI1 zone filter
Lookback – number of bars (in CCI1's timeframe) to check for overbought/oversold touches.
Overbought / Oversold – levels (default: +100 / -100).
CCI2 MA neutral zone filter
Neutral Low / High – range where CCI2's MA blocks signals (default: -100 to +100).
CCI2 zone filter
Lookback – same as for CCI1 but applied to CCI2.
Overbought / Oversold – levels for CCI2 (default: +100 / -100).
Each filter has an enable checkbox.
Visual Output
Green triangle (L) – Long signal (CCI1 crosses above its MA and all enabled filters are satisfied).
Red triangle (S) – Short signal (CCI1 crosses below its MA and all enabled filters are satisfied).
Alerts – built-in alert conditions for Long and Short signals.
Note: This version does not plot CCI lines or bands to keep the chart clean. Only signals appear as arrows on the price chart.
Usage Tips
Set different timeframes – use CCI1 on a lower (entry) timeframe and CCI2 on a higher (trend) timeframe.
Adjust filter levels – if signals are too frequent, increase overbought/oversold values (e.g., +150/-150) or lengthen lookback.
Disable filters – to see pure CCI1/MA crossovers, uncheck all filter boxes.
Combine with price action – signals work best when confirmed by support/resistance or trend lines.
Example Configuration (from your screenshots)
CCI1: 1H timeframe, Length 9, MA Type SMA, MA Length 2
CCI2: 2H timeframe, Length 20, MA Type SMA
Filters: CCI1 zone ±180, lookback 50; CCI2 MA neutral zone -50..+50; CCI2 zone ±180, lookback 260
This gives rare, high‑confidence signals.
Alert Conditions
Dual CCI Long – triggered on a valid Long signal.
Dual CCI Short – triggered on a valid Short signal.
Happy trading!
Pine Script code included – copy, modify, and use at your own discretion. Indicator

AG Pro CCI Reversion Quality [AGPro Series]AG Pro CCI Reversion Quality
Overview
AG Pro CCI Reversion Quality is a chart-based analysis framework designed to evaluate the quality of potential mean reversion conditions after meaningful CCI displacement. The script is not built around the simplistic idea that every overextended reading should immediately reverse. Instead, it focuses on whether a stretch condition begins to mature into a more structured, readable, and context-aware reversion environment.
The core objective is to separate raw CCI extremes from higher-quality reversion candidates. In many conventional oscillator workflows, a high positive or negative CCI reading is treated as a direct trigger. This script does not follow that approach. A strong stretch may still reflect healthy continuation, trend persistence, or unstable counter-trend conditions. For that reason, the script evaluates the quality of the reversion setup rather than the existence of a threshold breach alone.
The indicator is built for users who want a more selective framework around mean reversion. It examines whether price has deviated enough from an EMA-based reference mean, whether the reversion path remains meaningful, whether trend pressure is working against the setup, and whether recent structure suggests a cleaner or more crowded return path. The output is a contextual quality view rather than a one-dimensional overbought or oversold label.
This means the script should be understood as a decision-support tool for chart study and workflow organization. It is intended to help users distinguish between conditions that are immature, weak, blocked, developing, or stronger within a mean reversion context. It does not guarantee that price will reverse, and it does not assume that every stretch condition deserves a fade.
What the script does
The script monitors CCI displacement and then evaluates whether that displacement is beginning to convert into a more credible reversion environment. In practical terms, the workflow asks a sequence of questions. First, is there a meaningful stretch? Second, is the move beginning to lose directional quality or show reversion readiness? Third, is there enough room back toward the mean to matter? Fourth, is dominant trend pressure still strong enough to reduce the attractiveness of fading the move? Fifth, is nearby structure relatively clean, or is the path crowded by congestion and repeated mean interaction?
By combining those layers, the script attempts to reduce the noise associated with raw oscillator threshold logic. A positive stretch does not automatically imply a short setup. A negative stretch does not automatically imply a long setup. The script instead checks whether the overall reversion context is becoming more coherent.
This framework can be useful in discretionary workflows where users want to prioritize cleaner mean reversion candidates over mechanically reacting to every extreme oscillator reading. It is also useful for users who prefer a visual structure that summarizes context rather than one that continuously emits aggressive directional prompts.
Unique edge
The unique edge of this script is that it treats CCI as the starting point of the analysis, not the end point. Many oscillator-based studies stop at the detection of an extreme value. AG Pro CCI Reversion Quality continues beyond that stage and asks whether the extreme is maturing into a higher-quality reversion environment.
This makes the tool different from a basic CCI threshold script, a classic overbought/oversold marker, or a simple cross-based reversal detector. The script is not designed to label every extreme. It is designed to grade the environment around the extreme.
The indicator also keeps a clear distinction between stretch direction and stretch intensity. A market may be in a positive stretch or a negative stretch, but the degree of that stretch can still vary between mild, extended, and extreme conditions. In parallel, the script separately estimates reversion quality, trend pressure against the reversion idea, distance back to the reference mean, and structural friction. This multi-layered structure is meant to help users avoid treating all extreme readings as equivalent.
Another important difference is that the script explicitly accounts for context that can weaken a counter-trend reversion idea. Strong directional pressure, repeated interactions with the mean, and crowded local structure can all reduce the clarity of a fade. Instead of ignoring those conditions, the model reflects them in the displayed quality state.
Methodology
The script begins with a CCI calculation and identifies whether price is in a neutral regime, a positive stretch regime, or a negative stretch regime. It then classifies stretch intensity according to threshold-based displacement logic. The purpose of this stage is to define whether the market is extended enough for reversion analysis to become relevant.
From there, the indicator evaluates reversion readiness. This layer looks for signs that the stretch may be beginning to lose directional quality. Rather than relying on one isolated condition, the readiness component blends several pieces of information, such as directional change in CCI behavior, body structure, wick behavior, and simple stalling characteristics. This is meant to produce a broader view of whether reversion conditions are starting to organize.
The model then evaluates distance to mean. This matters because a reversion concept is less meaningful if price is already too close to the reference mean, while a more meaningful opportunity may exist when displacement remains materially extended. The reference anchor used here is an EMA-based mean, and the script also visualizes an ATR-based reversion zone around that mean.
Trend pressure is treated as a separate contextual penalty. This is a key design choice. A mean reversion idea that opposes strong directional pressure may be materially weaker than a similar stretch in a less forceful trend environment. The script therefore estimates how much prevailing directional pressure works against the reversion idea and reduces the effective quality view accordingly.
Structure friction is also included. This component is intended to reflect whether the recent path is relatively clean or crowded. Repeated interaction with the mean, compression, and congestion can reduce the clarity of a reversion path. Instead of assuming that all distance from the mean is equally attractive, the script attempts to reflect when the path back toward the mean is noisy or structurally inefficient.
All of these elements are combined into a composite Reversion Quality view. The final output is then expressed through panel information, chart labels, the zone display, and state logic.
State model
The state model is intentionally selective. It is meant to help users read context, not flood the chart with constant directional calls.
NEUTRAL indicates that there is no active stretch regime currently qualifying for reversion analysis.
WATCH indicates that a stretch exists and some reversion characteristics are forming, but the overall quality remains in an earlier or less mature stage.
READY indicates that the reversion quality has advanced enough to meet the preferred threshold defined by the user inputs. This does not imply certainty or guaranteed reversal. It simply means that the model sees a stronger monitored reversion context than it did at lower-quality states.
WEAK indicates that a stretch may exist, but the quality remains below the preferred threshold. This state is intentionally treated with caution.
BLOCKED indicates that the environment is materially impaired by elevated opposing pressure or structural friction. In other words, the stretch may exist, but the model does not consider the reversion context clean enough.
These states are designed to provide a workflow hierarchy rather than a promise hierarchy. The purpose is to help users prioritize and interpret, not to replace judgment.
Visual structure
The reference mean is displayed as an EMA-based mean line. Around it, the script plots an ATR-based reversion zone. This zone is intended to help users see the region surrounding the mean that is being used as the reversion anchor. The zone becomes more visually expressive when an active stretch context is present and more neutral when no active stretch is in focus.
The on-chart labels are designed to show the dominant local state when relevant. Depending on user settings, the script can display WATCH, READY, BLOCKED, and optionally WEAK labels. The label system is filtered by spacing logic so the chart remains more readable and does not endlessly repeat the same message on adjacent bars.
The information panel summarizes the active context. It is designed to show state, current reversion side, stretch direction, stretch intensity, reversion quality, trend pressure versus reversion, distance to mean, structure friction, setup bias, and a short risk note. The panel can also be repositioned from the settings, allowing the user to adapt placement to chart layout and personal preference.
The chart guide labels are included to make the mean and zone easier to identify visually. Their role is descriptive, not predictive.
Signals and alerts
The alert structure is built around monitored reversion states rather than trading promises. The available alert conditions include Ready Long Reversion, Ready Short Reversion, Watch Long Reversion, Watch Short Reversion, Reversion Quality Upgrade, and Reversion Quality Breakdown.
These alerts are designed to notify the user that the modeled reversion environment is changing. They should not be interpreted as guaranteed turning points. The script does not know future price behavior and does not claim to identify all reversals. It only identifies conditions that fit its internal reversion-quality logic.
Because different assets, sessions, and volatility structures behave differently, users should always validate whether the alert behavior matches their own chart-reading process and timeframe preference.
Key inputs
The script includes inputs for CCI length, reference mean length, multiple stretch thresholds, READY and WATCH thresholds, trend pressure filter strength, structure friction lookback, reversion zone width, label spacing, background highlight transparency, and visual display controls.
These inputs are intended to let users adapt the framework to different instruments and chart conditions. The script is not presented as universally optimal out of the box for all markets or all styles. Some users may prefer a more selective threshold structure, while others may prefer earlier WATCH states. Similarly, different assets may respond differently to the same mean length or zone width.
The visual controls are included to help users keep the chart readable. Users can enable or disable signal labels, WATCH labels, WEAK labels, background highlights, guide labels, and the information panel. Label size and panel text size are also configurable.
How to interpret the tool
A useful way to interpret the script is to think of it as a contextual filter around reversion conditions. A high stretch value alone is not enough. The quality concept becomes more meaningful when stretch, readiness, distance to mean, and contextual penalties begin to align.
If the script is neutral, it is signaling that no active stretch regime is currently in focus. If it is in WATCH, the script sees an emerging reversion environment, but one that may still be early or incomplete. If it reaches READY, the model is identifying a stronger monitored reversion context according to its current thresholds. If the state is BLOCKED, the model is emphasizing that pressure or structure is reducing the attractiveness of the reversion idea.
The panel is especially helpful for separating why a setup is weak. In some cases, quality may be limited because distance to mean is too thin. In other cases, trend pressure may still be high. In others, structure friction may be elevated even if displacement exists. This decomposition is intentional because it gives the user a more transparent framework than a single opaque signal.
What this script is not
This script is not a simple CCI threshold indicator. It is not designed to mark every move above or below a fixed level as a reversal opportunity.
It is not a guaranteed turning-point detector. Markets can remain extended for longer than expected, and strong trends can continue even after oscillator readings become extreme.
It is not a standalone execution system. The script does not account for all trade management variables, liquidity considerations, news catalysts, slippage, or user-specific risk parameters.
It is not a substitute for independent chart reading. It is intended to support analysis, not replace it.
Limitations and transparency
Like any chart-based model, this script has limitations. CCI extremes can persist, and a stretch can remain extended longer than a reversion-focused framework may prefer. In strong continuation phases, what appears to be a mature stretch can still fail to revert meaningfully.
The reversion-quality approach is also sensitive to the interaction between volatility, price structure, and trend behavior. Different markets can produce different behavior profiles. A configuration that feels balanced on one asset or timeframe may feel too early or too conservative on another.
The structure friction layer is an estimate, not an objective statement of future path quality. The trend pressure component is likewise a contextual model, not a certainty model. The script uses observable chart information to organize conditions, but it does not predict future order flow.
Users should also understand that visualization choices are meant to improve readability, not imply certainty. The mean line, reversion zone, state labels, and background highlights are interpretive aids.
Risk disclosure
This script is provided for chart analysis, research, and workflow support. It does not provide financial, investment, legal, or tax advice. Nothing displayed by the script should be interpreted as a promise of outcome or a guarantee of reversal.
All markets involve risk. Mean reversion concepts can fail, continuation can persist, and volatility conditions can change rapidly. Users should apply independent judgment, appropriate risk controls, and broader market context before acting on any chart-based interpretation.
The script should be used as one analytical layer among many, not as a self-sufficient decision engine.
Summary
AG Pro CCI Reversion Quality is a selective mean reversion quality framework built around CCI displacement, EMA-based mean reference logic, distance-to-mean context, trend pressure, and structure friction. Its purpose is not to say that every extreme should fade. Its purpose is to help identify when an extreme begins to organize into a more structured reversion environment.
The model is intended for users who want a cleaner, more context-aware interpretation of stretch conditions than a traditional threshold-only oscillator can provide. By separating stretch direction, stretch intensity, reversion quality, and contextual penalties, the script aims to make mean reversion analysis more structured, more transparent, and more selective.
Indicator

Oscillators with DivergencesIf you do enjoy this indicator, check out my Ultimate Indicator! It is another collection of indicators all into one but that is for price chart indicators like Donchian, Keltner, EMAs, VWAP, Super Trend, etc.
This is a culmination of hundreds of hours (maybe even a thousand, honestly) of work spent working with dozens of indicators and now taking all of the ones I like the most and combining them into one so you can easily switch between them. On top of that, I have my own custom divergence code that can look back up to five pivots!
There's the following indicators all wrapped into this one:
MACD
RSI
CCI
Volume-Weighted MACD
MFI
Stochastic
Stochastic RSI
I could not get a working method of looking back several pivots from other people's code so I took a 1-pivot lookback method and copied out several times and made necessary changes to work properly. It will also draw an "early divergence" the moment it's happening rather than waiting the normal 5 candles to show. Once the 5 candles have passed, it will pick the furthest back divergence as the one to stay.
Let's say you have the divergences set to 3 pivot points. If a divergence happens that goes back 1 pivot point, but later a 3 pivot divergence overlaps it, the 1 pivot will get removed after the 3 pivot early divergence is confirmed after its 5 candles have passed. Just put it on the chart and you'll see, it sounds crazy to explain.
I've added a bunch of tooltips to explain each setting. Please read them if you have questions. I've also added notes into my code if you do choose to use it for your own purposes or make changes. I wish you luck haha, it's a bit of a mess. Some things were commented out but elft in there just beacuse I never know when I want to re-enable it or just see what the original code was. Indicator

Indicator

Indicator

CCI [Hash Adaptive]Adaptive CCI Pro: Professional Technical Analysis Indicator
The Commodity Channel Index is a momentum oscillator developed by Donald Lambert in 1980. CCI measures the relationship between an asset's price and its statistical average, identifying cyclical turns and overbought/oversold conditions. The indicator oscillates around zero, with values above +100 indicating overbought conditions and values below -100 suggesting oversold conditions.
Standard CCI Formula: (Typical Price - Moving Average) / (0.015 × Mean Deviation)
This indicator transforms the traditional CCI into a sophisticated visual analysis tool through several key enhancements:
Implements dual exponential moving average smoothing to eliminate market noise
Preserves signal integrity while reducing false signals
Adaptive smoothing responds to market volatility conditions
Dynamic Color Visualization System
Continuous gradient transitions from red (bearish momentum) to green (bullish momentum)
Real-time color intensity reflects momentum strength
Eliminates discrete color jumps for fluid visual interpretation
Adaptive Intelligence Features
Dynamic overbought/oversold thresholds adapt to market conditions
Reduces false signals during high volatility periods
Maintains sensitivity during low volatility environments
Momentum Vector Analysis
Incorporates velocity calculations for early trend identification
Crossover detection with momentum confirmation
Advanced signal filtering reduces market noise
Extreme Level Analysis
Values above +100: Strong overbought conditions, potential reversal zones
Values below -100: Strong oversold conditions, potential buying opportunities
Zero-line crossovers: Momentum shift confirmation
Optimization Parameters
CCI Period (Default: 14)
Shorter periods (10-12): Increased sensitivity, more signals
Standard periods (14-20): Balanced responsiveness and reliability
Longer periods (21-30): Reduced noise, stronger signal confirmation
Smoothing Factor (Default: 5)
Lower values (1-3): Maximum responsiveness, suitable for scalping
Medium values (4-6): Balanced approach for swing trading
Higher values (7-10): Institutional-grade smoothness for position trading
Signal Sensitivity (Default: 6)
Conservative (7-10): High-probability signals, reduced frequency
Balanced (5-6): Optimal risk-reward ratio
Aggressive (1-4): Maximum signal generation, requires additional confirmation
Strategic Implementation
Oversold reversals in red zones with momentum confirmation
Zero-line breaks with sustained color transitions
Extreme readings followed by momentum divergence
Risk Management
Use extreme levels (+100/-100) for position sizing decisions
Monitor color intensity for momentum strength assessment
Combine with price action analysis for comprehensive market view
Market Context Application
Trending markets: Focus on momentum direction and extreme readings
Range-bound markets: Utilize overbought/oversold levels for mean reversion
Volatile markets: Increase smoothing parameters and signal sensitivity
Professional Advantages
Instantaneous momentum assessment through color visualization
Reduced cognitive load compared to traditional oscillators
Professional presentation suitable for client reporting
Adaptive Technology
Self-adjusting parameters reduce manual optimization requirements
Consistent performance across varying market conditions
Advanced mathematics eliminate common CCI limitations
The Adaptive CCI Pro represents the evolution of momentum analysis, combining Lambert's foundational CCI concept with modern computational techniques to deliver institutional-grade market intelligence through an intuitive visual interface. Indicator

ATR+CCI Monetary Risk Tool - TP/SL⚙️ ATR+CCI Monetary Risk Tool — Volatility-aware TP/SL & Position Sizing
Exact prices (no rounding), ATR-percentile dynamic stops, and risk-budget sizing for consistent execution.
🧠 What this indicator is
A risk-first planning tool. It doesn’t generate orders; it gives you clean, objective levels (Entry, SL, TP) and position size derived from your risk budget. It shows only the latest setup to keep charts readable, and a compact on-chart table summarizing the numbers you actually act on.
✨ What makes it different
Dynamic SL by regime (ATR percentile): Instead of a fixed multiple, the SL multiplier adapts to the current volatility percentile (low / medium / high). That helps avoid tight stops in noisy markets and over-wide stops in quiet markets.
Risk budgeting, not guesswork: Size is computed from Account Balance × Max Risk % divided by SL distance × point value. You risk the same dollars across assets/timeframes.
Precision that matches your instrument: Entry, TP, SL, and SL Distance are displayed as exact prices (no rounding), truncated to syminfo.mintick so they align with broker/exchange precision.
Symbol-aware point value: Uses syminfo.pointvalue so you don’t maintain tick tables.
Non-repaint option: Work from closed bars to keep the plan stable.
🔧 How to use (quick start)
Add to chart and pick your timeframe and symbol.
In settings:
Set Account Balance (USD) and Max Risk per Trade (%).
Choose R:R (1:1 … 1:5).
Pick ATR Period and CCI Period (defaults are sensible).
Keep Dynamic ATR ON to adapt SL by regime.
Keep Use closed-bar values ON to avoid repaint when planning.
Read the labels (Entry/TP/SL) and the table (SL Distance, Position Size, Max USD Risk, ATR Percentile, effective SL Mult).
Combine with your entry trigger (price action, levels, momentum, etc.). This indicator handles risk & targets.
📐 How levels are computed
Bias: CCI ≥ 0 ⇒ long, otherwise short.
ATR Percentile: Percent rank of ATR(atrPeriod) over a lookback window.
Effective SL Mult:
If percentile < Low threshold ⇒ use Low SL Mult (tighter).
If between thresholds ⇒ use Base SL Mult.
If percentile > High threshold ⇒ use High SL Mult (wider).
Stop-Loss: SL = Entry ± ATR × SL_Mult (minus for long, plus for short).
Take-Profit: TP = Entry ± (Entry − SL) × R (R from the R:R dropdown).
Position Size:
USD Risk = Balance × Risk%
Contracts = USD Risk ÷ (|Entry − SL| × PointValue)
For futures, quantity is floored to whole contracts.
Exact prices: Entry/TP/SL and SL Distance are not rounded; they’re truncated to mintick so what you see matches valid price increments.
📊 What you’ll see on chart
Latest Entry (blue), TP (green), SL (red) with labels (optional emojis: ➡️ 🎯 🛑).
Info Table with:
Bias, Entry, TP, SL (exact, truncated to mintick)
SL Distance (exact, truncated)
Position Size (contracts/units)
Max USD Risk
Point Value
ATR Percentile and effective SL Mult
🧪 Practical examples
High-volatility session (e.g., XAUUSD, 1H): ATR percentile is high ⇒ wider SL, smaller size. Reduces churn from normal noise during macro events.
Range-bound market (e.g., EURUSD, 4H): ATR percentile low ⇒ tighter SL, better R:R. Helps you avoid carrying unnecessary risk.
Index swing planning (e.g., ES1!, Daily): Non-repaint levels + risk budgeting = consistent sizing across days/weeks, easier to review and journal.
🧭 Why traders should use it
Consistency: Same dollar risk regardless of instrument or volatility regime.
Clarity: One-trade view forces focus; you see the numbers that matter.
Adaptivity: Stops calibrated to the market’s current behavior, not last month’s.
Discipline: A visible checklist (SL distance, size, USD risk) before you hit buy/sell.
🔧 Input guide (practical defaults)
CCI Period: 100 by default; use as a bias filter, not an entry signal.
ATR Period: 14 by default; raise for smoother, lower for more reactive.
ATR Percentile Lookback: 200 by default (stable regime detection).
Percentile thresholds: 33/66 by default; widen the gap to change how often regimes switch.
SL Mults: Start ~1.5 / 2.0 / 2.5 (low/base/high). Tune by asset.
Risk % per trade: Common pro ranges are 0.25–1.0%; adjust to your risk tolerance.
R:R: Start with 1:2 or 1:3 for balanced skew; adapt to strategy edge.
Closed-bar values: Keep ON for planning/live; turn OFF only for exploration.
💡 Best practices
Combine with your entry logic (structure, momentum, liquidity levels).
Review ATR percentile and effective SL Mult across sessions so you understand regime shifts.
For futures, remember size is floored to whole contracts—safer by design.
Journal trades with the table snapshot to improve risk discipline over time.
⚠️ Notes & limitations
This is not a strategy; it does not place orders or alerts.
No slippage/commissions modeled here; build a strategy() version for backtests that mirror your broker/exchange.
Displayed non-price metrics use two decimals; prices and SL Distance are exact (truncated to mintick).
📎 Disclaimer
For educational purposes only. Not financial advice. Markets involve risk. Test thoroughly before trading live.
Indicator

Commodity Trend Reactor [BigBeluga]
🔵 OVERVIEW
A dynamic trend-following oscillator built around the classic CCI, enhanced with intelligent price tracking and reversal signals.
Commodity Trend Reactor extends the traditional Commodity Channel Index (CCI) by integrating trend-trailing logic and reactive reversal markers. It visualizes trend direction using a trailing stop system and highlights potential exhaustion zones when CCI exceeds extreme thresholds. This dual-level system makes it ideal for both trend confirmation and mean-reversion alerts.
🔵 CONCEPTS
Based on the CCI (Commodity Channel Index) oscillator, which measures deviation from the average price.
Trend bias is determined by whether CCI is above or below user-defined thresholds.
Trailing price bands are used to lock in trend direction visually on the main chart.
Extreme values beyond ±200 are treated as potential reversal zones.
🔵 FEATURES\
CCI-Based Trend Shifts:
Triggers a bullish bias when CCI crosses above the upper threshold, and bearish when it crosses below the lower threshold.
Adaptive Trailing Stops:
In bullish mode, a trailing stop tracks the lowest price; in bearish mode, it tracks the highest.
Top & Bottom Markers:
When CCI surpasses +200 or drops below -200, it plots colored squares both on the oscillator and on price, marking potential reversal zones.
Background Highlights:
Each time a trend shift occurs, the background is softly colored (lime for bullish, orange for bearish) to highlight the change.
🔵 HOW TO USE
Use the oscillator to monitor when CCI crosses above or below threshold values to detect trend activation.
Enter trades in the direction of the trailing band once the trend bias is confirmed.
Watch for +200 and -200 square markers as warnings of potential mean reversals.
Use trailing stop areas as dynamic support/resistance to manage stop loss and exit strategies.
The background color changes offer clean confirmation of trend transitions on chart.
🔵 CONCLUSION
Commodity Trend Reactor transforms the simple CCI into a complete trend-reactive framework. With real-time trailing logic and clear reversal alerts, it serves both momentum traders and contrarian scalpers alike. Whether you’re trading breakouts or anticipating mean reversions, this indicator provides clarity and structure to your decision-making. Indicator

HTC peppermint_07 CCI w signal + s&r RSI
This CCI version enhances the traditional Commodity Channel Index (CCI) by integrating a dynamically calculated Relative Strength Index (RSI) that acts as support and resistance as shown in the screenshot, it can add as a confirmation to the divergence found in the CCI.
Key Features:
Enhanced CCI: The primary plot (black line but customizable) represents the standard CCI, providing insight into price momentum and potential overbought/oversold conditions.
Dynamic RSI Support/Resistance: The upper and lower bands (medium cyan line) are derived from a smoothed RSI, dynamically adjusting to the current market volatility. These bands serve as potential support and resistance levels for the CCI as additional confirmation for the divergence.
Overbought/Oversold Zones: The traditional overbought (+100) and oversold (-100) levels for CCI are marked with horizontal dotted lines.
Benefits:
Improved Entry/Exit Signals: Combining CCI with dynamic RSI support/resistance may offer more precise trading signals compared to using CCI alone.
Dynamic Adaptation: The RSI-based bands adapt to changing market conditions, potentially providing more relevant support and resistance levels.
Divergence Confirmation: dynamic s&r RSI adds confluence to potential trend reversals identified by the CCI.
Potential Usage:
Traders might use this indicator to:
Identify potential overbought/oversold conditions using the CCI and its relationship to the dynamic RSI bands.
Look for breakouts beyond the dynamic support/resistance levels as potential entry points.
Confirm potential trend reversals using RSI divergence (cyan and red label above divergence) signals.
Further Development Considerations:
Customizable Parameters: Allowing users to adjust the CCI length, RSI periods, and smoothing factors would enhance flexibility.
Alert Conditions: Adding alerts for breakouts, overbought/oversold conditions, and divergence signals would improve usability.
Backtesting: Thoroughly backtesting the indicator's performance across different assets and timeframes is essential before using it for live trading.
DISCLAIMER: !!
indicator is a custom technical analysis tool designed for educational and informational purposes only. It should not be construed as financial advice or a recommendation to buy or sell any security. Trading involves substantial risk of loss and may not be suitable for all investors.
Key Points to Consider:
No Guarantee of Profitability: The indicator's past performance is not indicative of future results. No trading strategy can guarantee profits or eliminate the risk of losses. You could lose some or all of your investment.
Use at Your Own Risk: Use of this indicator is solely at your own discretion and risk. You are responsible for your trading decisions. The developers and distributors of this indicator are not liable for any losses incurred as a result of using it.
Not Financial Advice: This indicator does not provide financial advice. Consult with a qualified financial advisor before making any investment decisions.
Backtesting Limitations: Backtested results, if presented, should be viewed with caution. Past performance may not reflect future results due to various factors, including changing market conditions and the limitations of backtesting methodologies.
Indicator Limitations: Technical indicators, including this one, are not perfect. They can generate false signals, and their effectiveness can vary depending on market conditions and the specific parameters used.
Parameter Optimization: Optimizing indicator parameters for past performance can lead to overfitting, which may not translate to future profitability.
No Warranty: The indicator is provided "as is" without any warranty of any kind, either express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, or non-infringement.
Changes and Updates: The developers may make changes or updates to the indicator without notice.
By using the "HTC peppermint_07 CCI w signal + s&r RSI" indicator, you acknowledge and agree to the terms of this disclaimer. If you do not agree with these terms, do not use the indicator. Indicator

Triple CCI Strategy MFI Confirmed [Skyrexio]Overview
Triple CCI Strategy MFI Confirmed leverages 3 different periods Commodity Channel Index (CCI) indicator in conjunction Money Flow Index (MFI) and Exponential Moving Average (EMA) to obtain the high probability setups. Fast period CCI is used for having the high probability to enter in the direction of short term trend, middle and slow period CCI are used for confirmation, if market now likely in the mid and long-term uptrend. MFI is used to confirm trade with the money inflow/outflow with the high probability. EMA is used as an additional trend filter. Moreover, strategy uses exponential moving average (EMA) to trail the price when it reaches the specific level. More information in "Methodology" and "Justification of Methodology" paragraphs. The strategy opens only long trades.
Unique Features
Dynamic stop-loss system: Instead of fixed stop-loss level strategy utilizes average true range (ATR) multiplied by user given number subtracted from the position entry price as a dynamic stop loss level.
Configurable Trading Periods: Users can tailor the strategy to specific market windows, adapting to different market conditions.
Four layers trade filtering system: Strategy utilizes two different period CCI indicators, MFI and EMA indicators to confirm the signals produced by fast period CCI.
Trailing take profit level: After reaching the trailing profit activation level scrip activate the trailing of long trade using EMA. More information in methodology.
Methodology
The strategy opens long trade when the following price met the conditions:
Fast period CCI shall crossover the zero-line.
Slow and Middle period CCI shall be above zero-lines.
Price shall close above the EMA. Crossover is not obligatory
MFI shall be above 50
When long trade is executed, strategy set the stop-loss level at the price ATR multiplied by user-given value below the entry price. This level is recalculated on every next candle close, adjusting to the current market volatility.
At the same time strategy set up the trailing stop validation level. When the price crosses the level equals entry price plus ATR multiplied by user-given value script starts to trail the price with EMA. If price closes below EMA long trade is closed. When the trailing starts, script prints the label “Trailing Activated”.
Strategy settings
In the inputs window user can setup the following strategy settings:
ATR Stop Loss (by default = 1.75)
ATR Trailing Profit Activation Level (by default = 2.25)
CCI Fast Length (by default = 14, used for calculation short term period CCI)
CCI Middle Length (by default = 25, used for calculation short term period CCI)
CCI Slow Length (by default = 50, used for calculation long term period CCI)
MFI Length (by default = 14, used for calculation MFI
EMA Length (by default = 50, period of EMA, used for trend filtering EMA calculation)
Trailing EMA Length (by default = 20)
User can choose the optimal parameters during backtesting on certain price chart.
Justification of Methodology
Before understanding why this particular combination of indicator has been chosen let's briefly explain what is CCI, MFI and EMA.
The Commodity Channel Index (CCI) is a momentum-based technical indicator that measures the deviation of a security's price from its average price over a specific period. It helps traders identify overbought or oversold conditions and potential trend reversals.
The CCI formula is:
CCI = (Typical Price − SMA) / (0.015 × Mean Deviation)
Typical Price (TP): This is calculated as the average of the high, low, and closing prices for the period.
Simple Moving Average (SMA): This is the average of the Typical Prices over a specific number of periods.
Mean Deviation: This is the average of the absolute differences between the Typical Price and the SMA.
The result is a value that typically fluctuates between +100 and -100, though it is not bounded and can go higher or lower depending on the price movement.
The Money Flow Index (MFI) is a technical indicator that measures the strength of money flowing into and out of a security. It combines price and volume data to assess buying and selling pressure and is often used to identify overbought or oversold conditions. The formula for MFI involves several steps:
1. Calculate the Typical Price (TP):
TP = (high + low + close) / 3
2. Calculate the Raw Money Flow (RMF):
Raw Money Flow = TP × Volume
3. Determine Positive and Negative Money Flow:
If the current TP is greater than the previous TP, it's Positive Money Flow.
If the current TP is less than the previous TP, it's Negative Money Flow.
4. Calculate the Money Flow Ratio (MFR):
Money Flow Ratio = Sum of Positive Money Flow (over n periods) / Sum of Negative Money Flow (over n periods)
5. Calculate the Money Flow Index (MFI):
MFI = 100 − (100 / (1 + Money Flow Ratio))
MFI above 80 can be considered as overbought, below 20 - oversold.
The Exponential Moving Average (EMA) is a type of moving average that places greater weight and significance on the most recent data points. It is widely used in technical analysis to smooth price data and identify trends more quickly than the Simple Moving Average (SMA).
Formula:
1. Calculate the multiplier
Multiplier = 2 / (n + 1) , Where n is the number of periods.
2. EMA Calculation
EMA = (Current Price) × Multiplier + (Previous EMA) × (1 − Multiplier)
This strategy leverages Fast period CCI, which shall break the zero line to the upside to say that probability of short term trend change to the upside increased. This zero line crossover shall be confirmed by the Middle and Slow periods CCI Indicators. At the moment of breakout these two CCIs shall be above 0, indicating that there is a high probability that price is in middle and long term uptrend. This approach increases chances to have a long trade setup in the direction of mid-term and long-term trends when the short-term trend starts to reverse to the upside.
Additionally strategy uses MFI to have a greater probability that fast CCI breakout is confirmed by this indicator. We consider the values of MFI above 50 as a higher probability that trend change from downtrend to the uptrend is real. Script opens long trades only if MFI is above 50. As you already know from the MFI description, it incorporates volume in its calculation, therefore we have another one confirmation factor.
Finally, strategy uses EMA an additional trend filter. It allows to open long trades only if price close above EMA (by default 50 period). It increases the probability of taking long trades only in the direction of the trend.
ATR is used to adjust the strategy risk management to the current market volatility. If volatility is low, we don’t need the large stop loss to understand the there is a high probability that we made a mistake opening the trade. User can setup the settings ATR Stop Loss and ATR Trailing Profit Activation Level to realize his own risk to reward preferences, but the unique feature of a strategy is that after reaching trailing profit activation level strategy is trying to follow the trend until it is likely to be finished instead of using fixed risk management settings. It allows sometimes to be involved in the large movements. It’s also important to make a note, that script uses another one EMA (by default = 20 period) as a trailing profit level.
Backtest Results
Operating window: Date range of backtests is 2022.04.01 - 2024.11.25. It is chosen to let the strategy to close all opened positions.
Commission and Slippage: Includes a standard Binance commission of 0.1% and accounts for possible slippage over 5 ticks.
Initial capital: 10000 USDT
Percent of capital used in every trade: 50%
Maximum Single Position Loss: -4.13%
Maximum Single Profit: +19.66%
Net Profit: +5421.21 USDT (+54.21%)
Total Trades: 108 (44.44% win rate)
Profit Factor: 2.006
Maximum Accumulated Loss: 777.40 USDT (-7.77%)
Average Profit per Trade: 50.20 USDT (+0.85%)
Average Trade Duration: 44 hours
These results are obtained with realistic parameters representing trading conditions observed at major exchanges such as Binance and with realistic trading portfolio usage parameters.
How to Use
Add the script to favorites for easy access.
Apply to the desired timeframe and chart (optimal performance observed on 2h BTC/USDT).
Configure settings using the dropdown choice list in the built-in menu.
Set up alerts to automate strategy positions through web hook with the text: {{strategy.order.alert_message}}
Disclaimer:
Educational and informational tool reflecting Skyrex commitment to informed trading. Past performance does not guarantee future results. Test strategies in a simulated environment before live implementation
Strategy

Trend CCITrend CCI (TCCI) Indicator
Description:
The Trend CCI (TCCI) indicator is a unique combination of the Commodity Channel Index (CCI) and the Average True Range (ATR), designed to identify trends and market reversals with a refined sensitivity to price volatility. The indicator plots the CCI, adjusted by an ATR filter, and color-codes the trendline to signal uptrends and downtrends.
How It Works:
This indicator uses the CCI to measure price momentum and an ATR-based filter to smooth out market noise, making it easier to detect significant shifts in the market trend. Key parameters such as the ATR Period, ATR Multiplier, and CCI Period have been carefully chosen to optimize the indicator's performance:
1. ATR Period (default: 18)
The ATR Period determines the number of periods used to calculate the **Average True Range**, which reflects market volatility. In this case, an **ATR Period of 18** has been selected for several reasons:
Balance between responsiveness and noise reduction : A period of 18 strikes a balance between being responsive to recent price movements and filtering out minor fluctuations. Shorter ATR periods might be too reactive, creating false signals, while longer periods might miss shorter-term trends.
Adaptable to various market conditions : An 18-period ATR is suitable for both intraday and swing trading strategies, making it versatile across different time frames.
Standard industry practice : Many traders use ATR settings between 14 and 20 periods as a convention for detecting reliable volatility levels.
2. ATR Multiplier (default: 1.5)
The ATR Multiplier is applied to the ATR value to define how sensitive the indicator is to volatility. In this case, a multiplier of 1.5 has been chosen:
Avoiding whipsaws in low volatility markets: By setting the multiplier to 1.5, the indicator filters out smaller, less significant price movements, reducing the likelihood of whipsaw signals (i.e., false trend reversals during periods of low volatility).
Optimizing signal accuracy: A moderate multiplier like 1.5 ensures that the indicator only generates signals when the price moves a significant distance from the average range. Higher multipliers (e.g., 2.0) may ignore valid opportunities, while lower multipliers (e.g., 1.0) might create too many signals.
Enhancing trend clarity : The multiplier’s role in widening the range allows the indicator to respond more clearly during periods of strong trends, reducing signal noise and false positives.
3. CCI Period (default: 63)
The CCI Period defines the number of periods used to calculate the Commodity Channel Index. A 63-period CCI is selected based on the following considerations:
Smoothing the momentum calculation: A longer period, such as 63, is used to smooth out the CCI and reduce the effects of short-term price fluctuations. This period captures longer-term momentum, making it ideal for identifying more significant market trends.
-Filtering out short-term noise: While shorter CCI periods (e.g., 14 or 20) may be more reactive, they tend to produce more signals, some of which may be false. A 63-period CCI focuses on stronger and more sustained price movements, providing fewer but higher-quality signals.
Adapted to intermediate trading: A 63-period CCI aligns well with traders looking for medium-term trend-following strategies, striking a balance between long-term trend identification and responsiveness to significant price shifts.
How to Use:
Green Area: When the trendline turns green, it signals that the CCI is positive, reflecting upward momentum. This can be interpreted as a buy signal, indicating the potential for long positions or continuing bullish trades.
Red Area: When the trendline turns red, it signals that the CCI is negative, reflecting downward momentum. This can be interpreted as a sell signal, indicating potential short positions or bearish trades.
ATR Filter: The ATR helps reduce false signals by ignoring minor price movements. Traders can adjust the ATR Multiplier to make the indicator more or less sensitive based on market conditions. A lower multiplier (e.g., 1.2) may increase signal frequency, while a higher multiplier (e.g., 2.0) reduces it.
Originality:
The Trend CCI (TCCI) stands out due to its combination of the CCI and ATR. While many indicators simply plot raw CCI values, this script enhances the CCI’s effectiveness by incorporating an ATR-based volatility filter. This ensures that only significant trends trigger signals, making it a more reliable tool in volatile markets. The choice of the ATR period, multiplier, and CCI period ensures a refined balance between trend detection and noise reduction, distinguishing it as a powerful trend-following indicator.
Additionally, the visual aspect—using color-coded trendlines that dynamically shift between green and red—simplifies the interpretation of market trends, offering traders a clear and immediate understanding of trend direction and momentum strength.
Final Recommendations:
Use in Trending Markets The TCCI is most effective in trending markets, where its signals align with broader market momentum. In sideways or low-volatility markets, consider adjusting the ATR multiplier or using other complementary indicators to confirm the signals.
Risk Management: Always integrate robust risk management practices, such as using stop-loss orders and position sizing, to protect against sudden market reversals or periods of heightened volatility.
Adjust for Volatility: Consider the volatility of the asset being traded. In highly volatile assets, a higher ATR multiplier (e.g., 2.0) may be necessary to filter out noise, while in more stable assets, a lower multiplier (e.g., 1.2) might generate earlier signals.
By using the Trend CCI (TCCI) indicator with a deeper understanding of its key parameters, traders can better identify trends, reduce noise, and improve their overall decision-making in the markets.
Good Profits! Indicator

Double CCI Confirmed Hull Moving Average Reversal StrategyOverview
The Double CCI Confirmed Hull Moving Average Strategy utilizes hull moving average (HMA) in conjunction with two commodity channel index (CCI) indicators: the slow and fast to increase the probability of entering when the short and mid-term uptrend confirmed. The main idea is to wait until the price breaks the HMA while both CCI are showing that the uptrend has likely been already started. Moreover, strategy uses exponential moving average (EMA) to trail the price when it reaches the specific level. The strategy opens only long trades.
Unique Features
Dynamic stop-loss system: Instead of fixed stop-loss level strategy utilizes average true range (ATR) multiplied by user given number subtracted from the position entry price as a dynamic stop loss level.
Configurable Trading Periods: Users can tailor the strategy to specific market windows, adapting to different market conditions.
Double trade setup confirmation: Strategy utilizes two different period CCI indicators to confirm the breakouts of HMA.
Trailing take profit level: After reaching the trailing profit activation level scrip activate the trailing of long trade using EMA. More information in methodology.
Methodology
The strategy opens long trade when the following price met the conditions:
Short-term period CCI indicator shall be above 0.
Long-term period CCI indicator shall be above 0.
Price shall cross the HMA and candle close above it with the same candle
When long trade is executed, strategy set the stop-loss level at the price ATR multiplied by user-given value below the entry price. This level is recalculated on every next candle close, adjusting to the current market volatility.
At the same time strategy set up the trailing stop validation level. When the price crosses the level equals entry price plus ATR multiplied by user-given value script starts to trail the price with EMA. If price closes below EMA long trade is closed. When the trailing starts, script prints the label “Trailing Activated”.
Strategy settings
In the inputs window user can setup the following strategy settings:
ATR Stop Loss (by default = 1.75)
ATR Trailing Profit Activation Level (by default = 2.25)
CCI Fast Length (by default = 25, used for calculation short term period CCI
CCI Slow Length (by default = 50, used for calculation long term period CCI)
Hull MA Length (by default = 34, period of HMA, which shall be broken to open trade)
Trailing EMA Length (by default = 20)
User can choose the optimal parameters during backtesting on certain price chart.
Justification of Methodology
Before understanding why this particular combination of indicator has been chosen let's briefly explain what is CCI and HMA.
The Commodity Channel Index (CCI) is a momentum-based technical indicator used in trading to measure a security's price relative to its average price over a given period. Developed by Donald Lambert in 1980, the CCI is primarily used to identify cyclical trends in a security, helping traders to spot potential buying or selling opportunities.
The CCI formula is:
CCI = (Typical Price − SMA) / (0.015 × Mean Deviation)
Typical Price (TP): This is calculated as the average of the high, low, and closing prices for the period.
Simple Moving Average (SMA): This is the average of the Typical Prices over a specific number of periods.
Mean Deviation: This is the average of the absolute differences between the Typical Price and the SMA.
The result is a value that typically fluctuates between +100 and -100, though it is not bounded and can go higher or lower depending on the price movement.
The Hull Moving Average (HMA) is a type of moving average that was developed by Alan Hull to improve upon the traditional moving averages by reducing lag while maintaining smoothness. The goal of the HMA is to create an indicator that is both quick to respond to price changes and less prone to whipsaws (false signals).
How the Hull Moving Average is Calculated?
The Hull Moving Average is calculated using the following steps:
Weighted Moving Average (WMA): The HMA starts by calculating the Weighted Moving Average (WMA) of the price data over a period square root of n (sqrt(n))
Speed Adjustment: A WMA is then calculated for half of the period n/2, and this is multiplied by 2 to give more weight to recent prices.
Lag Reduction: The WMA of the full period n is subtracted from the doubled n/2 WMA.
Final Smoothing: To smooth the result and reduce noise, a WMA is calculated for the square root of the period n.
The formula can be represented as:
HMA(n) = WMA(WMA(n/2) × 2 − WMA(n), sqrt(n))
The Weighted Moving Average (WMA) is a type of moving average that gives more weight to recent data points, making it more responsive to recent price changes than a Simple Moving Average (SMA). In a WMA, each data point within the selected period is multiplied by a weight, with the most recent data receiving the highest weight. The sum of these weighted values is then divided by the sum of the weights to produce the WMA.
This strategy leverages HMA of user given period as a critical level which shall be broken to say that probability of trend change to the upside increased. HMA reacts faster than EMA or SMA to the price change, that’s why it increases chances to enter new trade earlier. Long-term period CCI helps to have an approximation of mid-term trend. If it’s above 0 the probability of uptrend increases. Short-period CCI allows to have an approximation of short-term trend reversal from down to uptrend. This approach increases chances to have a long trade setup in the direction of mid-term trend when the short-term trend starts to reverse.
ATR is used to adjust the strategy risk management to the current market volatility. If volatility is low, we don’t need the large stop loss to understand the there is a high probability that we made a mistake opening the trade. User can setup the settings ATR Stop Loss and ATR Trailing Profit Activation Level to realize his own risk to reward preferences, but the unique feature of a strategy is that after reaching trailing profit activation level strategy is trying to follow the trend until it is likely to be finished instead of using fixed risk management settings. It allows sometimes to be involved in the large movements. It’s also important to make a note, that script uses HMA to enter the trade, but for trailing it leverages EMA. It’s used because EMA has no such fast reaction to price move which increases probability not to be stopped out from any significant uptrend move.
Backtest Results
Operating window: Date range of backtests is 2022.07.01 - 2024.08.01. It is chosen to let the strategy to close all opened positions.
Commission and Slippage: Includes a standard Binance commission of 0.1% and accounts for possible slippage over 5 ticks.
Initial capital: 10000 USDT
Percent of capital used in every trade: 100%
Maximum Single Position Loss: -4.67%
Maximum Single Profit: +19.66%
Net Profit: +14897.94 USDT (+148.98%)
Total Trades: 104 (36.54% win rate)
Profit Factor: 2.312
Maximum Accumulated Loss: 1302.66 USDT (-9.58%)
Average Profit per Trade: 143.25 USDT (+0.96%)
Average Trade Duration: 34 hours
These results are obtained with realistic parameters representing trading conditions observed at major exchanges such as Binance and with realistic trading portfolio usage parameters.
How to Use
Add the script to favorites for easy access.
Apply to the desired timeframe and chart (optimal performance observed on 2h BTC/USDT).
Configure settings using the dropdown choice list in the built-in menu.
Set up alerts to automate strategy positions through web hook with the text: {{strategy.order.alert_message}}
Disclaimer:
Educational and informational tool reflecting Skyrex commitment to informed trading. Past performance does not guarantee future results. Test strategies in a simulated environment before live implementation
Strategy

Indicator
