MACD/EMA/SMA/Ichimoku Confluence StrategyThis strategy uses a number of chart indicators to provide a Bullish/Bearish signal. Using a combination of the 200 SMA, the 20 EMA, the MACD and the Ichimoku cloud, the strategy logic will adjust the amount of confluence required between the indicators depending on how bullish or bearish the chart is looking. The logic looks for the following:
- Are we above or below the 200 SMA?
- Are we above or below the 20 EMA?
- Have we had a bullish MACD cross?
- Where are we in relation to the Ichimoku cloud?
If the coin is below the 200 SMA, then the strategy will only give a buy signal if the coin closes a candle above the 20 EMA AND the MACD is bullish and either the Ichimoku cloud is green, or the coin is above the Ichimoku cloud (regardless of colour).
If the coin is above the 200 SMA, Then the strategy will give a buy signal if the coin closes a candle above the 20 EMA AND the MACD is bullish and the coin is either IN the cloud (not necessarily above it) or the cloud is green.
The reverse is true for a sell signal, i.e. when the coin is above the 200 SMA it must close a candle below the Ichimoku cloud and be bearish in relation to the 20 EMA and MACD. If it is below the 200 SMA, then the strategy will give a sell signal if the the EMA/MACD conditions are true and the coin enters the cloud.
This strategy gives a fairly conservative signal for entry and exit points, but is fairly successful across a number of time frames, both short term and long term. As with all my strategies, I only include LONG entries and closes, not SHORT entries (as I find they make for inaccurate backtesting).
Please feel free to like, share, critique and suggest any improvements to this strategy. All feedback, positive and negative, is appreciated.
Recherche dans les scripts pour "20年美元汇率"
Wyckoff Volume ColorThis volume indicator is intended to be used for the Wyckoff strategy.
Green volume bar indicates last price close above close 10 days ago together with volume larger than 2 * SMA(volume, 20)
Blue volume bar indicates last price close above close 10 days ago together with volume less than 2 * SMA(volume, 20)
Orange volume bar indicates last price close lower than close 10 days ago together with volume less than 2 * SMA(volume, 20)
Red volume bar indicates last price close lower than close 10 days ago together with volume larger than 2 * SMA(volume, 20)
The main purpose is to have green bars with a buying climax and red bars with a selling climax.
Three variables can be changed by simply pressing the settings button.
How many days back the closing price is compared to. Now 10 days.
How many times the SMA(volume) is multiplied by. Now times 2.
How many days the SMA(volume) consists by. Now 20 days.
3riple Moving AverageBITFINEX:ETHUSD
Description:
Mixing three Simple Moving Averages (7 - 20 - 65) to determine "uptrends" and "downtrends".
Uptrend: When the 7 Line is upper than 20, And 20 Line is upper than 65 that usually means the price is trending up.
Downtrend: When the 7 Line is lower than 20, And 20 Line is lower than 65 that usually means the price is trending down.
Cardwell RSI by TQ📌 Cardwell RSI – Enhanced Relative Strength Index
This indicator is based on Andrew Cardwell’s RSI methodology , extending the classic RSI with tools to better identify bullish/bearish ranges and trend dynamics.
In uptrends, RSI tends to hold between 40–80 (Cardwell bullish range).
In downtrends, RSI tends to stay between 20–60 (Cardwell bearish range).
Key Features :
Standard RSI with configurable length & source
Fast (9) & Slow (45) RSI Moving Averages (toggleable)
Cardwell Core Levels (80 / 60 / 40 / 20) – enabled by default
Base Bands (70 / 50 / 30) in dotted style
Optional custom levels (up to 3)
Alerts for MA crosses and level crosses
Data Window metrics: RSI vs Fast/Slow MA differences
How to Use :
Monitor RSI behavior inside Cardwell’s bullish (40–80) and bearish (20–60) ranges
Watch RSI crossovers with Fast (9) and Slow (45) MAs to confirm momentum or trend shifts
Use levels and alerts as confluence with your trading strategy
Default Settings :
RSI Length: 14
MA Type: WMA
Fast MA: 9 (hidden by default)
Slow MA: 45 (hidden by default)
Cardwell Levels (80/60/40/20): ON
Base Bands (70/50/30): ON
ADX MTF mura visionOverview
ADX MTF — mura vision measures trend strength and visualizes a higher-timeframe (HTF) ADX on any chart. The current-TF ADX is drawn as a line; the HTF ADX is rendered as “step” segments to reflect closed HTF bars without repainting. Optional soft fills highlight the 20–25 (trend forming) and 40–50 (strong trend) zones.
How it works
ADX (current TF) : Classic Wilder formulation using DI components and RMA smoothing.
HTF ADX : Requested via request.security(..., lookahead_off, gaps_off).
When a new HTF bar opens, the previous value is frozen as a horizontal segment.
The current HTF bar is shown as a live moving segment.
This staircase look is expected on lower timeframes.
Auto timeframe mapping
If “Auto” is selected, the HTF is derived from the chart TF:
<30m → 60m, 30–<240m → 240m, 240m–<1D → 1D, 1D → 1W, 1W/2W → 1M, ≥1M → same.
Inputs
DI Length and ADX Smoothing — core ADX parameters.
Higher Time Frame — Auto or a fixed TF.
Line colors/widths for current ADX and HTF ADX.
Fill zone 20–25 and Fill zone 40–50 — optional light background fills.
Number of HTF ADX Bars — limits stored HTF segments to control chart load.
Reading the indicator
ADX < 20: typically range-bound conditions; trend setups require extra caution.
20–25: trend emergence; breakouts and continuation structures gain validity.
40–50: strong trend; favor continuation and manage with trailing stops.
>60 and turning down: possible trend exhaustion or transition toward range.
Note: ADX measures strength, not direction. Combine with your directional filter (e.g., price vs. MA, +DI/−DI, structure/levels).
Non-repainting behavior
HTF values use lookahead_off; closed HTF bars are never revised.
The only moving piece is the live segment for the current HTF bar.
Best practices
Use HTF ADX as a regime filter; time entries with the current-TF ADX rising through your threshold.
Pair with ATR-based stops and a MA/structure filter for direction.
Consider higher thresholds on highly volatile altcoins.
Performance notes
The script draws line segments for HTF bars. If your chart becomes heavy, reduce “Number of HTF ADX Bars.”
Disclaimer
This script is for educational purposes only and does not constitute financial advice. Trading involves risk.
EMA/VWAP SuiteEMA/VWAP Suite
Overview
The EMA/VWAP Suite is a versatile and customizable Pine Script indicator designed for traders who want to combine Exponential Moving Averages (EMAs) and Volume Weighted Average Prices (VWAPs) in a single, powerful tool. It overlays up to eight EMAs and six VWAPs (three anchored, three rolling) on the chart, each with percentage difference labels to show how far the current price is from these key levels. This indicator is perfect for technical analysis, supporting strategies like trend following, mean reversion, and VWAP-based trading.
By default, the indicator displays eight EMAs and a session-anchored VWAP (AVWAP 1, in fuchsia) with their respective percentage difference labels, keeping the chart clean yet informative. Other VWAPs and their bands are disabled by default but can be enabled and customized as needed. The suite is designed to minimize clutter while providing maximum flexibility for traders.
Features
- Eight Customizable EMAs: Plot up to eight EMAs with user-defined lengths (default: 3, 9, 19, 38, 50, 65, 100, 200), each with a unique color for easy identification.
- EMA Percentage Difference Labels: Show the percentage difference between the current price and each EMA, displayed only for visible EMAs when enabled.
- Three Anchored VWAPs: Plot VWAPs anchored to the start of a session, week, or month, with customizable source, offset, and band multipliers. AVWAP 1 (session-anchored, fuchsia) is enabled by default.
- Three Rolling VWAPs: Plot VWAPs calculated over fixed periods (default: 20, 50, 100), with customizable source, offset, and band multipliers.
- VWAP Bands: Optional upper and lower bands for each VWAP, based on standard deviation with user-defined multipliers.
- VWAP Percentage Difference Labels: Display the percentage difference between the current price and each VWAP, shown only for visible VWAPs. Enabled by default to show the AVWAP 1 label.
- Customizable Colors: Each VWAP has a user-defined color via input settings, with labels matching the VWAP line colors (e.g., AVWAP 1 defaults to fuchsia).
Flexible Display Options: Toggle individual EMAs, VWAPs, bands, and labels on or off to reduce chart clutter.
Settings
The indicator is organized into intuitive setting groups:
EMA Settings
Show EMA 1–8 : Toggle each EMA on or off (default: all enabled).
EMA 1–8 Length : Set the period for each EMA (default: 3, 9, 19, 38, 50, 65, 100, 200).
Show EMA % Difference Labels : Enable/disable percentage difference labels for all EMAs (default: enabled).
EMA Label Font Size (8–20) : Adjust the font size for EMA labels (default: 10, mapped to “tiny”).
Anchored VWAP 1–3 Settings
Show AVWAP 1–3 : Toggle each anchored VWAP on or off (default: AVWAP 1 enabled, others disabled).
AVWAP 1–3 Color : Set the color for each VWAP line and its label (default: fuchsia for AVWAP 1, purple for AVWAP 2, teal for AVWAP 3).
AVWAP 1–3 Anchor : Choose the anchor period (“Session,” “Week,” “Month”; default: Session for AVWAP 1, Week for AVWAP 2, Month for AVWAP 3).
AVWAP 1–3 Source : Select the price source (default: hlc3).
AVWAP 1–3 Offset : Set the horizontal offset for the VWAP line (default: 0).
Show AVWAP 1–3 Bands : Toggle upper/lower bands (default: disabled).
AVWAP 1–3 Band Multiplier : Adjust the standard deviation multiplier for bands (default: 1.0).
Rolling VWAP 1–3 Settings
Show RVWAP 1–3 : Toggle each rolling VWAP on or off (default: disabled).
RVWAP 1–3 Color : Set the color for each VWAP line and its label (default: navy for RVWAP 1, maroon for RVWAP 2, fuchsia for RVWAP 3).
RVWAP 1–3 Period Length : Set the period for the rolling VWAP (default: 20, 50, 100).
RVWAP 1–3 Source : Select the price source (default: hlc3).
RVWAP 1–3 Offset : Set the horizontal offset (default: 0).
Show RVWAP 1–3 Bands : Toggle upper/lower bands (default: disabled).
RVWAP 1–3 Band Multiplier : Adjust the standard deviation multiplier for bands (default: 1.0).
VWAP Label Settings
Show VWAP % Difference Labels : Enable/disable percentage difference labels for all VWAPs (default: enabled, showing AVWAP 1 label).
VWAP Label Font Size (8–20) : Adjust the font size for VWAP labels (default: 10, mapped to “tiny”).
How It Works
EMAs : Calculated using ta.ema(close, length) for each user-defined period. Percentage differences are computed as ((close - ema) / close) * 100 and displayed as labels for visible EMAs when show_ema_labels is enabled.
Anchored VWAPs : Calculated using ta.vwap(source, anchor, 1), where the anchor is determined by the selected timeframe (Session, Week, or Month). Bands are computed using the standard deviation from ta.vwap.
Rolling VWAPs : Calculated using ta.vwap(source, length), with bands based on ta.stdev(source, length).
Labels : Updated on each new bar (ta.barssince(ta.change(time) != 0) == 0) to show percentage differences. Labels are only displayed for visible EMAs/VWAPs to avoid clutter.
Color Matching: VWAP labels use the same color as their corresponding VWAP lines, set via input settings (e.g., avwap1_color for AVWAP 1).
Example Use Cases
- Trend Following: Use longer EMAs (e.g., 100, 200) to identify trends and shorter EMAs (e.g., 3, 9) for entry/exit signals.
- Mean Reversion: Monitor percentage difference labels to spot overbought/oversold conditions relative to EMAs or VWAPs.
- VWAP Trading: Use the default session-anchored AVWAP 1 for intraday trading, adding weekly/monthly VWAPs or rolling VWAPs for broader context.
- Intraday Analysis: Leverage the session-anchored AVWAP 1 (enabled by default) for day trading, with bands as support/resistance zones.
ATR Extension from Moving Average, with Robust Sigma Bands
# ATR Extension from Moving Average, with Robust Sigma Bands
**What it does**
This indicator measures how far price is from a selected moving average, expressed in **ATR multiples**, then overlays **robust sigma bands** around the long run central tendency of that extension. Positive values mean price is extended above the MA, negative values mean price is extended below the MA. The signal adapts to volatility through ATR, which makes comparisons consistent across symbols and regimes.
**Why it can help**
* Normalizes distance to an MA by ATR, which controls for changing volatility
* Uses the **bar’s extreme** against the MA, not just the close, so it captures true stretch
* Computes a **median** and **standard deviation** of the extension over a multi-year window, which yields simple, intuitive bands for trend and mean-reversion decisions
---
## Inputs
* **MA length**: default 50, options 200, 64, 50, 20, 9, 4, 3
* **MA timeframe**: Daily or Weekly. The MA is computed on the chosen higher timeframe through `request.security`.
* **MA type**: EMA or SMA
* **Years lookback**: 1 to 10 years, default 5. This sets the sample for the median and sigma calculation, `years * 365` bars.
* **Line width**: visual width of the plotted extension series
* **Table**: optional on-chart table that displays the current long run **median** and **sigma** of the extension, with selectable text size
**Fixed parameters in this release**
* **ATR length**: 20 on the daily timeframe
* **ATR type**: classic ATR. ADR percent is not enabled in this version.
---
## Plots and colors
* **Main plot**: “Extension from 50d EMA” by default. Value is in **ATR multiples**.
* **Reference lines**:
* `median` line, black dashed
* +2σ orange, +3σ red
* −2σ blue, −3σ green
---
## How it is calculated
1. **Moving average** on the selected higher timeframe: EMA or SMA of `close`.
2. **Extreme-based distance** from MA, as a percent of price:
* If `close > MA`, use `(high − MA) / close * 100`
* Else, use `(low − MA) / close * 100`
3. **ATR percent** on the daily timeframe: `ATR(20) / close * 100`
4. **ATR multiples**: extension percent divided by ATR percent
5. **Robust center and spread** over the chosen lookback window:
* Center: **median** of the ATR-multiple series
* Spread: **standard deviation** of that series
* Bands: center ± 1σ, 2σ, 3σ, with 2σ and 3σ drawn
This design yields an intuitive unit scale. A value of **+2.0** means price is about 2 ATR above the selected MA by the most stretched side of the current bar. A value of **−3.0** means roughly 3 ATR below.
---
## Practical use
* **Trend continuation**
* Sustained readings near or above **+1σ** together with a rising MA often signal healthy momentum.
* **Mean reversion**
* Spikes into **±2σ** or **±3σ** can identify stretched conditions for fade setups in range or late-trend environments.
* **Regime awareness**
* The **median** moves slowly. When median drifts positive for many months, the market spends more time extended above the MA, which often marks bullish regimes. The opposite applies in bearish regimes.
**Notes**
* The MA can be set to Weekly while ATR remains Daily. This is deliberate, it keeps the normalization stable for most symbols.
* On very short intraday charts, the extension remains meaningful since it references the session’s extreme against a higher-timeframe MA and a daily ATR.
* Symbols with short histories may not fill the lookback window. Bands will adapt as data accrues.
---
## Table overlay
Enable **Table → Show** to see:
* “ATR from \”
* Current **median** and **sigma** of the extension series for your lookback
---
## Recommended settings
* **Swing equities**: 50 EMA on Daily, 5 to 7 years
* **Index trend work**: 200 EMA on Daily, 10 years
* **Position trading**: 20 or 50 EMA on Weekly MA, 5 to 10 years
---
## Interpretation examples
* Reading **+2.7** with price above a rising 50 EMA, near prior highs
* Strong trend extension, consider pyramiding in trend systems or waiting for a pullback if you are a mean-reverter.
* Reading **−2.2** into multi-month support with flattening MA
* Stretch to the downside that often mean-reverts, size entries based on your system rules.
---
## Credits
The concept of measuring stretch from a moving average in ATR units has a rich community history. This implementation and its presentation draw on ideas popularized by **Jeff Sun**, **SugarTrader**, and **Steve D Jacobs**. Thanks to each for their contributions to ATR-based extension thinking.
---
## License
This script and description are distributed under **MPL-2.0**, consistent with the header in the source code.
---
## Changelog
* **v1.0**: Initial public release. Daily ATR normalization, EMA or SMA on D or W timeframe, robust median and sigma bands, optional table.
---
## Disclaimer
This tool is for educational use only. It is not financial advice. Always test on your own data and strategies, then manage risk accordingly.
ForecastForecast (FC), indicator documentation
Type: Study, not a strategy
Primary timeframe: 1D chart, most plots and the on-chart table only render on daily bars
Inspiration: Robert Carver’s “forecast” concept from Advanced Futures Trading Strategies, using normalized, capped signals for comparability across markets
⸻
What the indicator does
FC builds a volatility-normalized momentum forecast for a chosen symbol, optionally versus a benchmark. It combines an EWMAC composite with a channel breakout composite, then caps the result to a common scale. You can run it in three data modes:
• Absolute: Forecast of the selected symbol
• Relative: Forecast of the ratio symbol / benchmark
• Combined: Average of Absolute and Relative
A compact table can summarize the current forecast, short-term direction on the forecast EMAs, correlation versus the benchmark, and ATR-scaled distances to common price EMAs.
⸻
PineScreener, relative-strength screening
This indicator is excellent for screening on relative strength in PineScreener, since the forecast is volatility-normalized and capped on a common scale.
Available PineScreener columns
PineScreener reads the plotted series. You will see at least these columns:
• FC, the capped forecast
• from EMA20, (price − EMA20) / ATR in ATR multiples
• from EMA50, (price − EMA50) / ATR in ATR multiples
• ATR, ATR as a percent of price
• Corr, weekly correlation with the chosen benchmark
Relative mode and Combined mode are recommended for cross-sectional screens. In Relative mode the calculation uses symbol / benchmark, so ensure the ratio ticker exists for your data source.
⸻
How it works, step by step
1. Volatility model
Compute exponentially weighted mean and variance of daily percent returns on D, annualize, optionally blend with a long lookback using 10y %, then convert to a price-scaled sigma.
2. EWMAC momentum, three legs
Daily legs: EMA(8) − EMA(32), EMA(16) − EMA(64), EMA(32) − EMA(128).
Divide by price-scaled sigma, multiply by leg scalars, cap to Cap = 20, average, then apply a small FDM factor.
3. Breakout momentum, three channels
Smoothed position inside 40, 80, and 160 day channels, each scaled, then averaged.
4. Composite forecast
Average the EWMAC composite and the breakout composite, then cap to ±20.
Relative mode runs the same logic on symbol / benchmark.
Combined mode averages Absolute and Relative composites.
5. Weekly correlation
Pearson correlation between weekly closes of the asset and the benchmark over a user-set length.
6. Direction overlay
Two EMAs on the forecast series plus optional green or red background by sign, and optional horizontal level shading around 0, ±5, ±10, ±15, ±20.
⸻
Plots
• FC, capped forecast on the daily chart
• 8-32 Abs, 8-32 Rel, single-leg EWMAC plus breakout view
• 8-32-128 Abs, 8-32-128 Rel, three-leg composite views
• from EMA20, from EMA50, (price − EMA) / ATR
• ATR, ATR as a percent of price
• Corr, weekly correlation with the benchmark
• Forecast EMA1 and EMA2, EMAs of the forecast with an optional fill
• Backgrounds and guide lines, optional sign-based background, optional 0, ±5, ±10, ±15, ±20 guides
Most plots and the table are gated by timeframe.isdaily. Set the chart to 1D to see them.
⸻
Inputs
Symbol selection
• Absolute, Relative, Combined
• Vs. benchmark for Relative mode and correlation, choices: SPY, QQQ, XLE, GLD
• Ticker or Freeform, for Freeform use full TradingView notation, for example NASDAQ:AAPL
Engine selection
• Include:
• 8-32-128, three EWMAC legs plus three breakouts
• 8-32, simplified view based on the 8-32 leg plus a 40-day breakout
EMA, applied to the forecast
• EMA1, EMA2, with line-width controls, plus color and opacity
Volatility
• Span, EW volatility span for daily returns
• 10y %, blend of long-run volatility
• Thresh, Too volatile, placeholders in this version
Background
• Horizontal bg, level shading, enabled by default
• Long BG, Hedge BG, colors and opacities
Show
• Table, Header, Direction, Gain, Extension
• Corr, Length for correlation row
Table settings
• Position, background, opacity, text size, text color
Lines
• 0-lines, 10-lines, 5-lines, level guides
⸻
Reading the outputs
• Forecast > 0, bullish tilt; Forecast < 0, bearish or hedge tilt
• ±10 and ±20 indicate strength on a uniform scale
• EMA1 vs EMA2 on the forecast, EMA1 above EMA2 suggests improving momentum
• Table rows, label colored by sign, current forecast value plus a green or red dot for the forecast EMA cross, optional daily return percent, weekly correlation, and ATR-scaled EMA9, EMA20, EMA50 distances
⸻
Data handling, repainting, and performance
• Daily and weekly series are fetched with request.security().
• Calculations use closed bars, values can update until the bar closes.
• No lookahead, historical values do not repaint.
• Weekly correlation updates during the week, it finalizes on weekly close.
• On intraday charts most visuals are hidden by design.
⸻
Good practice and limitations
• This is a research indicator, not a trading system.
• The fixed Cap = 20 keeps a common scale, extreme moves will be clipped.
• Relative mode depends on the ratio symbol / benchmark, ensure both legs have data for your feed.
⸻
Credits
Concept inspired by Robert Carver’s forecast methodology in Advanced Futures Trading Strategies. Implementation details, parameters, and visuals are specific to this script.
⸻
Changelog
• First version
⸻
Disclaimer
For education and research only, not financial advice. Always test on your market and data feed, consider costs and slippage before using any indicator in live decisions.
EMA–VWAP Strategy (Confirmed crosses, 1 trade/cross)Wait for 10 and 20 ema to cross
Buy between 10 and 20
wait for 20 and 50 to cross
buy at vwap
10/20/50 ema and vwap is plotted
Penguin Trend with RSI on DiffVisualizes volatility regime via the percent spread between the upper Bollinger Band and the upper Keltner Channel, with bar colors from a lightweight trend engine and an RSI computed on the Diff signal. Supports SMA/EMA/WMA/RMA/HMA/VWMA/VWAP and an optional calculation timeframe. Defaults preserve the original look and behavior.
Penguin Trend with RSI on Diff shows expansion vs. compression in price action by comparing two classic volatility envelopes. It computes:
Diff% = (UpperBB − UpperKC) / UpperKC × 100
• Diff > 0: Bollinger Bands are wider than Keltner Channels → expansion / momentum regime
• Diff < 0: BB narrower than KC → compression / squeeze regime
A white “Average Diff” line smooths Diff% (default: SMA(5)) to highlight regime shifts. Bars are colored only when Diff > 0 to focus on expansion phases. A lightweight trend engine defines four states from a fast/slow MA bias and a short “thrust” MA on ohlc4:
• Green: Bullish bias and thrust > fast MA (healthy upside thrust)
• Red: Bearish bias and thrust < fast MA (healthy downside thrust)
• Yellow: Bullish bias but thrust ≤ fast MA (pullback/weakness)
• Blue: Bearish bias but thrust ≥ fast MA (bear rally/short squeeze)
RSI on Diff:
The indicator adds an RSI applied to Diff% to gauge momentum of the expansion/compression signal itself. Choose between Built-in RSI or a manual RMA-based computation, and optionally smooth it. Default OB/OS lines are 70/30.
How it works:
• Bollinger Bands (BB): Basis = selected MA of src (default SMA(20)); Width = StdDev × Mult (default 2.0)
• Keltner Channels (KC): Basis = selected MA of src (default SMA(20)); Width = ATR(kcATR) × Mult (defaults 20 and 2.0)
• Diff%: Safe division guards against division-by-zero
• MA engine: Select SMA / EMA / WMA / RMA / HMA / VWMA / VWAP for BB/KC bases, Average Diff, and trend components (VWAP is session-anchored)
• Calculation timeframe: Compute internals on a chosen TF via request.security() while viewing any chart TF
Inputs (key):
• Calculation timeframe: Empty = chart TF; set e.g., 60/240 to compute on that TF
• BB: Length, StdDev Mult, MA Type
• KC: Basis Length, ATR Length, Multiplier, MA Type
• Average Diff: Length and MA Type
• RSI on Diff: RSI Length, Method (Built-in or Manual RMA), Smoothing Length, OB/OS levels, show/hide
• Trend Engine: Fast/Slow lengths & MA type, Signal (kept for completeness), Thrust MA length & type
• Display/Visibility: Paint bars only when Diff > 0; show zero line; “true Blue” color toggle; show/hide Diff columns and Average Diff
How to use:
1. Regime changes: Watch Diff% or Average Diff crossing 0. Above zero favors momentum/continuation setups; below zero suggests compression and potential breakout conditions.
2. State confirmation: During expansion (Diff > 0), prioritize Green/Red for aligned thrust; treat Yellow/Blue as cautionary/contrarian.
3. RSI on Diff: Use OB/OS and crossovers for timing entries/exits or for confirming/negating expansion strength.
Alerts:
• Diff crosses above/below 0
• Average Diff crosses above/below 0
• RSI(Diff) crosses above OB / below OS
• State changes: GREEN / RED / YELLOW / BLUE
Notes & limitations:
• VWAP is session-anchored and best on intraday data. If not applicable on the selected calculation TF, the script automatically falls back to EMA.
• Defaults (SMA(20) for BB/KC, multipliers 2.0, SMA(5) Average Diff, original trend coloring and bar painting) preserve the original appearance.
• RSI on Diff is plotted in the same pane for a compact workflow; you can hide it or split into a separate indicator if desired.
Release notes:
v6.0 — Upgraded to Pine v6. Added multi-MA options (SMA/EMA/WMA/RMA/HMA/VWMA/VWAP), calculation timeframe, RSI on Diff (Built-in or Manual RMA) with smoothing, safe division guard, optional zero line, and optional true Blue color. Defaults retain the original behavior.
License / disclaimer:
© waranyu.trkm — MIT License. Educational use only; not financial advice.
Penguin TrendMeasures the volatility regime by comparing the upper Bollinger Band to the upper Keltner Channel and colors bars with a lightweight trend state. Supports SMA/EMA/WMA/RMA/HMA/VWMA/VWAP and a selectable calculation timeframe. Default settings preserve the original look and behavior.
Penguin Trend visualizes expansion vs. compression in price action by comparing two classic volatility envelopes. It computes:
Diff% = (UpperBB − UpperKC) / UpperKC × 100
* Diff > 0: Bollinger Bands are wider than Keltner Channels -> expansion / momentum regime.
* Diff < 0: BB narrower than KC -> compression / squeeze regime.
A white “Average Difference” line smooths Diff% (default: SMA(5)) to help spot regime shifts.
Trend coloring (kept from original):
Bars are colored only when Diff > 0 to emphasize expansion phases. A lightweight trend engine defines four states using a fast/slow MA bias and a short “thrust” MA applied to ohlc4:
* Green: Bullish bias and thrust > fast MA (healthy upside thrust).
* Red: Bearish bias and thrust < fast MA (healthy downside thrust).
* Yellow: Bullish bias but thrust ≤ fast MA (pullback/weakness).
* Blue: Bearish bias but thrust ≥ fast MA (bear rally/short squeeze).
Note: By default, Blue renders as Yellow to preserve the original visual style. Enable “Use true BLUE color” if you prefer Aqua for Blue.
How it works (under the hood):
* Bollinger Bands (BB): Basis = selected MA of src (default SMA(20)). Width = StdDev × Mult (default 2.0).
* Keltner Channels (KC): Basis = selected MA of src (default SMA(20)). Width = ATR(kcATR) × Mult (defaults 20 and 2.0).
* Diff%: Safe division guards against division-by-zero.
* MA engine: You can choose SMA / EMA / WMA / RMA / HMA / VWMA / VWAP for BB/KC bases, Diff smoothing, and the trend components (VWAP is session-anchored).
* Calculation timeframe: Set “Calculation timeframe” to compute all internals on a chosen TF via request.security() while viewing any chart TF.
Inputs (key ones):
* Calculation timeframe: Empty = use chart TF; if set (e.g., 60), all internals compute on that TF.
* BB: Length, StdDev Mult, MA Type.
* KC: Basis Length, ATR Length, Multiplier, MA Type.
* Smoothing: Average Length & MA Type for the “Average Difference” line.
* Trend Engine: Fast/Slow lengths & MA type; Signal (kept for completeness); Thrust length & MA type (defaults replicate original behavior).
* Display: Paint bars only when Diff > 0; optional Zero line; optional true Blue color.
How to use:
1. Regime changes: Watch Diff% or Average Diff crossing 0. Above zero favors momentum/continuation setups; below zero suggests compression and potential breakout conditions.
2. State confirmation: Use bar colors to qualify expansion: Green/Red indicate expansion aligned with trend thrust; Yellow/Blue flag weaker/contrarian thrust during expansion.
3. Multi-timeframe analysis: Run calculations on a higher TF (e.g., H1/H4) while trading a lower TF chart to smooth noise.
Alerts:
* Diff crosses above/below 0.
* Average Diff crosses above/below 0.
* State changes: GREEN / RED / YELLOW / BLUE.
Notes & limitations:
* VWAP is session-anchored and best on intraday data. If not applicable on the selected calculation TF, the script automatically falls back to EMA.
* Default parameters (SMA(20) for BB/KC, multipliers 2.0, SMA(5) smoothing, trend logic and bar painting) preserve the original appearance.
Release notes:
v6.0 — Rewritten in Pine v6 with structured inputs and guards. Multi-MA support (SMA/EMA/WMA/RMA/HMA/VWMA/VWAP). Calculation timeframe via request.security() for multi-TF workflows. Safe division; optional zero line; optional true Blue color. Original visuals and behavior preserved by default.
License / disclaimer:
© waranyu.trkm — MIT License. Educational use only; not financial advice.
T-Virus Sentiment [hapharmonic]🧬 T-Virus Sentiment: Visualize the Market's DNA
Remember the iconic T-Virus vial from the first Resident Evil? That powerful, swirling helix of potential has always fascinated me. It sparked an idea: what if we could visualize the market's underlying health in a similar way? What if we could capture the "genetic code" of market sentiment and contain it within a dynamic, 3D indicator? This project is the result of that idea, brought to life with Pine Script.
The indicator's main goal is to measure the strength and direction of market sentiment by analyzing the "genetic code" of price action through a variety of trusted indicators. The result is displayed as a liquid level within a DNA helix, a bubble density representing buying pressure, and a T-Virus mascot that reflects the overall mood.
🧐 Core Concept: How It Works
The primary output of the indicator is the "Active %" gauge you see on the right side of the vial. This percentage represents the overall sentiment score, calculated as an average from 7 different technical analysis tools. Each tool is analyzed on every bar and assigned a score from 1 (strong bearish pressure) to 5 (strong bullish potential).
In this indicator, we re-imagine market dynamics through the lens of a viral outbreak. A strong bear market is like a virus taking hold, pulling all technical signals down into a state of weakness. Conversely, a powerful bull market is like an antiviral serum ; positive signals rise and spread toward the top of the vial, indicating that the system is being injected with strength.
This is not just another line on a chart. It's a comprehensive sentiment dashboard designed to give an immediate, at-a-glance understanding of the confluence between 7 classic technical indicators. The incredible 3D model of the vial itself was inspired by a design concept found here .
⚛️ The 4 Core Elements of T-Virus Sentiment
These four elements work in harmony to give a complete, multi-faceted picture of market sentiment. Each component tells a different part of the story.
The Virus Mascot: An instant emotional cue. This character provides the quickest possible read on the overall market mood, combining sentiment with volume pressure.
The Antiviral Serum Level: The main quantitative output. This is the liquid level in the DNA helix and the percentage gauge on the right, representing the average sentiment score from all 7 indicators.
Buy Pressure & Bubble Density: This visualizes volume flow. The density of bubbles represents the intensity of accumulation (buying) versus distribution (selling). It's the "power" behind the move.
The Signal Distribution: This shows the confluence (or dispersion) of sentiment. Are all signals bullish and clustered at the top, or are they scattered, indicating a conflicted market? The position of the indicator labels is crucial, as each is assigned to one of five distinct zones:
Base Bottom: The market is at its weakest. Signals here suggest strong bearish control and distribution.
Lower Zone: The market is still bearish, but signals may be showing early signs of accumulation or bottoming.
Neutral Core (Center): A state of balance or sideways consolidation. The market is waiting for a new direction.
Upper Zone: Bullish momentum is becoming clear. Signals are strengthening and showing bullish control.
Top Cap: The market is "heating up" with strong bullish sentiment, potentially nearing overbought conditions.
🐂🐻 The Virus Mascot: The At-a-Glance Indicator
This character acts as a shortcut to confirm market health. It combines the sentiment score with volume, preventing false confidence in a low-volume rally.
Its state is determined by a dual-check: the overall "Antiviral Serum Level" and the "Buy Pressure" must both be above 50%.
Green & Smiling: The 'all clear' signal. This means that not only is the overall technical sentiment bullish, but it's also being supported by real buying pressure. This is a sign of a healthy bull market.
Red & Angry: A warning sign. This appears if either the sentiment is weak, or a bullish sentiment is not being confirmed by buying volume. The latter could indicate a potential "bull trap" or an exhaustive move.
This mascot can be disabled from the settings page under "Virus Mascot Styling" if a cleaner look is preferred.
🫧 Bubble Density: Gauging Buy vs. Sell Pressure
The bubbles visualize the battle between buyers and sellers. There are two modes to control how this is calculated:
Mode 1: Visible Range (The 'Big Picture' View)
This default mode is best for getting a broad, contextual understanding of the current session. It dynamically analyzes the volume of every single candlestick currently visible on the screen to calculate the buy/sell pressure ratio. It answers the question: "Over the entire period I'm looking at, who is in control?" As you zoom in or out, the calculation adapts.
Mode 2: Custom Lookback (The 'Precision' View)
This mode is for traders who need to analyze short-term pressure. You can define a fixed number of recent bars to analyze, which is perfect for scalping or understanding the volume dynamics leading into a key level. It answers the question: "What is happening right now ?" In the example above, a lookback of 2 focuses only on the most recent action, clearly showing intense, immediate selling pressure (few bubbles) and a corresponding drop in the sentiment score to 29%.
ℹ️ Interactive Tooltips: Dive Deeper
We believe in transparency, not 'black box' indicators. This feature transforms the indicator from a visual aid into an active learning tool.
Simply hover the mouse over any indicator label (like EMA, OBV, etc.) to get a detailed tooltip. It will explain the specific data points and thresholds that signal met to be placed in its current zone. This helps build trust in the signals and allows users to fine-tune the indicator settings to better match their own trading style.
🎯 The Scoring Logic Breakdown
The "Antiviral Serum Level" gauge is the average score from 7 technical analysis tools. Each is graded on a 5-point scale (1=Strong Bearish to 5=Strong Bullish). Here’s a detailed, transparent look at how each "gene" is evaluated:
Relative Strength Index (RSI)
Measures momentum and overbought/oversold conditions.
Group 1 (Strong Bearish): RSI > 80 (Extreme Overbought)
Group 2 (Bearish): 70 < RSI ≤ 80 (Overbought)
Group 3 (Neutral): 30 ≤ RSI ≤ 70
Group 4 (Bullish): 20 ≤ RSI < 30 (Oversold)
Group 5 (Strong Bullish): RSI < 20 (Extreme Oversold)
Exponential Moving Averages (EMA)
Evaluates the trend's strength and structure based on the alignment of multiple EMAs (9, 21, 50, 100, 200, 250).
Group 1 (Strong Bearish): A perfect bearish sequence (9 < 21 < 50 < ...)
Group 2 (Bearish Transition): Early signs of a potential reversal (e.g., 9 > 21 but still below 50)
Group 3 (Neutral / Mixed): MAs are intertwined or showing a partial bullish sequence.
Group 4 (Bullish): A strong bullish sequence is forming (e.g., 9 > 21 > 50 > 100)
Group 5 (Strong Bullish): A perfect bullish sequence (9 > 21 > 50 > 100 > 200 > 250)
Moving Average Convergence Divergence (MACD)
Analyzes the relationship between two moving averages to gauge momentum.
Group 1 (Strong Bearish): MACD & Histogram are negative and momentum is falling.
Group 2 (Weakening Bearish): MACD is negative but the histogram is rising or positive.
Group 3 (Neutral / Crossover): A crossover event is occurring near the zero line.
Group 4 (Bullish): MACD & Histogram are positive.
Group 5 (Strong Bullish): MACD & Histogram are positive, rising strongly, and accelerating.
Average Directional Index (ADX)
Measures trend strength, not direction. The score is based on both ADX value and the dominance of DI+ vs DI-.
Group 1 (Bearish / No Trend): ADX < 20 and DI- is dominant.
Group 2 (Developing Bearish Trend): 20 ≤ ADX < 25 and DI- is dominant.
Group 3 (Neutral / Indecision): Trend is weak or DI+ and DI- are nearly equal.
Group 4 (Developing Bullish Trend): 25 ≤ ADX ≤ 40 and DI+ is dominant.
Group 5 (Strong Bullish Trend): ADX > 40 and DI+ is dominant.
Ichimoku Cloud (IKH)
A comprehensive indicator that defines support/resistance, momentum, and trend direction.
Group 1 (Strong Bearish): Price is below the Kumo, Tenkan < Kijun, and Chikou is below price.
Group 2 (Bearish): Price is inside or below the Kumo, with mixed secondary signals.
Group 3 (Neutral / Ranging): Price is inside the Kumo, often with a Tenkan/Kijun cross.
Group 4 (Bullish): Price is above the Kumo with strong primary signals.
Group 5 (Strong Bullish): All signals are aligned bullishly: price above Kumo, bullish Tenkan/Kijun cross, bullish future Kumo, and Chikou above price.
Bollinger Bands (BB)
Measures volatility and relative price levels.
Group 1 (Strong Bearish): Price is below the lower band.
Group 2 (Bearish Territory): Price is between the lower band and the basis line.
Group 3 (Neutral): Price is hovering around the basis line.
Group 4 (Bullish Territory): Price is between the basis line and the upper band.
Group 5 (Strong Bullish): Price is above the upper band.
On-Balance Volume (OBV)
Uses volume flow to predict price changes. The score is based on OBV's trend and its position relative to its moving average.
Group 1 (Strong Bearish): OBV is below its MA and falling.
Group 2 (Weakening Bearish): OBV is below its MA but showing signs of rising.
Group 3 (Neutral): OBV is very close to its MA.
Group 4 (Bullish): OBV is above its MA and rising.
Group 5 (Strong Bullish): OBV is above its MA, rising strongly, and showing signs of a volume spike.
🧭 How to Use the T-Virus Sentiment Indicator
IMPORTANT: This indicator is a sentiment dashboard , not a direct buy/sell signal generator. Its strength lies in showing confluence and providing a quick, holistic view of the market's technical health.
Confirmation Tool: Use the "Active %" gauge to confirm a trade setup from your primary strategy. For example, if you see a bullish chart pattern, a high and rising sentiment score can add confidence to your trade.
Momentum & Trend Gauge: A consistently high score (e.g., > 75%) suggests strong, established bullish momentum. A consistently low score (< 25%) suggests strong bearish control. A score hovering around 50% often indicates a ranging or indecisive market.
Divergence & Warning System: Pay attention to divergences. If the price is making new highs but the sentiment score is failing to follow or is actively decreasing, it could be an early warning sign that the underlying momentum is weakening.
⚙️ Settings & Customization
The indicator is highly customizable to fit any trading style.
Position & Anchor: Control where the vial appears on the chart.
Styling (Vial, Helix, etc.): Nearly every visual element can be color-customized.
Signals: This is where the real power is. All underlying indicator parameters (RSI length, MACD settings, etc.) can be fine-tuned to match a personal strategy. The text labels can also be disabled if the chart feels cluttered.
Enjoy visualizing the market's DNA with the T-Virus Sentiment indicator
Reversal Radars — Berk v2.0 (Bottom & Top)1) Combined script (Dip+Tepe)
Title:
Reversal Radars — Berk v2.0 (Bottom & Top)
Description (EN):
What it does
Two high-probability reversal detectors in one indicator: a Bottom Reversal Radar (long bias) and a Top Reversal Radar (short/hedge bias). Each radar aggregates multiple conditions into a single score and triggers when Score ≥ Threshold.
How it works
RSI regime shift: Bottom = recovery after oversold (touched 30, crosses up 35). Top = roll-over from overbought (touched 70, crosses down 65).
MACD cross: Bull (up) for bottoms, Bear (down) for tops.
EMA8 filter: Close above (bottom) / below (top) EMA(8).
Structure break (BOS): Close above recent swing high / below recent swing low (lookbackBars, using precomputed highest/lowest to avoid inconsistencies).
EMA200 proximity: Price within a configurable band (default −5% … +2%).
Volume expansion: Volume ≥ SMA(20) × multiplier (default 1.5×).
Divergence: Pivot-confirmed (3/3) bullish (bottom) or bearish (top) RSI divergence.
Scoring: RSI shift +2, divergence +2, MACD +1, EMA8 +1, BOS +1, Volume +1, EMA200 band +1.
Signals & Alerts
Bottom: label “DÖNÜŞ↑” and alert “Dipten Dönüş — Ana Sinyal” when scoreLong ≥ thrLong.
Top: label “DÖNÜŞ↓” and alert “Tepeden Dönüş — Ana Sinyal” when scoreShort ≥ thrShort.
Use Once per bar close for stable alerts.
Inputs
lenRSI, rsiOS=30, rsiRecover=35, rsiOB=70, rsiFall=65, volLen=20, volMult=1.5, lookbackBars=5, ema200 band (−5…+2%), thrLong/thrShort, toggles for Bottom/Top.
Timeframes & tips
Best on Daily/4H. Tighten thresholds (e.g., 4) and raise volume multiplier (1.8–2.0×) on lower TFs or thin liquidity.
No-repaint note
Evaluated on bar close; pivot divergences confirm with a natural ~3-bar delay.
Disclaimer
Educational use only. Not financial advice.
Tags: reversal, divergence, rsi, macd, ema, volume, trend, screener, stocks, crypto, bist
2) Bottom-only (Dip)
Title:
Bottom Reversal Radar — Berk v1.4
Description (EN):
Purpose
Scores bottoming conditions and triggers when Score ≥ Threshold (default 3).
Components
RSI recovery after oversold (30→35), MACD bull cross, close above EMA8, BOS above recent swing high, near-EMA200 band (−5…+2%), volume ≥ SMA(20)×1.5, and pivot-confirmed (3/3) bullish RSI divergence. Weights: RSI +2, Divergence +2, others +1.
Usage
Add to chart, set alert “Dipten Dönüş — Ana Sinyal”, Once per bar close. Works on any timeframe (need ≥200 bars for EMA200). Daily/4H recommended.
No-repaint
Bar-close evaluation; divergence confirms with ~3 bars.
Tags: bottom, reversal, rsi, macd, ema, volume, divergence
3) Top-only (Tepe)
Title:
Top Reversal Radar — Berk v1.0
Description (EN):
Purpose
Detects topping risk and triggers when Score ≥ Threshold (default 3) for exits/hedges.
Components
RSI roll-over from overbought (70→65), MACD bear cross, close below EMA8, BOS below recent swing low, near-EMA200 band, volume ≥ SMA(20)×1.5, and pivot-confirmed (3/3) bearish RSI divergence. Weights: RSI +2, Divergence +2, others +1.
Usage
Add to chart, set alert “Tepeden Dönüş — Ana Sinyal”, Once per bar close. Daily/4H preferred; tighten thresholds on lower TFs.
No-repaint
Bar-close evaluation; divergence confirms with ~3 bars.
Tags: top, reversal, rsi, macd, ema, volume, divergence
Extended CANSLIM Indicator❖ Extended CANSLIM Indicator.
The Extended CANSLIM indicator is an indicator that concentrates all the tools usually used by CANSLIM traders.
It shows a table where all the stock fundamental information is shown at once first for the last quarter and then up to 5 years back.
The fundamental data is checked against well known CANSLIM validation criteria and is shown over 4 state levels.
1. Good = Value is CANSLIM Compliant.
2. Acceptable = Value is not CANSLIM compliant but still good. value is shown with a lighter background color.
3. Warning = Value deserves special attention. Value is shown over orange background color.
3. Stop = Value is non CANSLIM compliant or indicates a stop trading condition. Value is shown over red background color.
The indicator has also a set of technical tools calculated on price or index and shown directly on the chart.
❖ Fundamental data shown in the table.
The table is arranged in 4 sets of data:
1. Table Header, showing Indicator and Company data.
2. CANSLIM.
3. 3Rs: RS Rating, Revenue and ROE.
4. Extra Data: Piotroski score, ATR, Trend Days, D to E, Avg Vol and Vol today.
Sets 3 and 4 can be hidden from the table.
❖ Indicator and Compay Data.
The table header shows, Indicator name and version.
It then displays Company Name, sector and industry, human size and its capitalization.
❖ CANSLIM Data.
Displays either genuine CANSLIM data from TradinView or custom data as best effort when that data cannot be obtained in TV.
C = EPS diluted growth, Quarterly YoY.
>= 25% = Good, >= 0% = Acceptable, < 0% = Stop
A = EPS diluted growth, Annual YoY.
>= 25% = Good, >= 0% = Acceptable, < 0% = Stop
N = New High as best effort (Cust).
Always Good
S = Float shares as best effort.
Always Good
L = One year performance relative to S&P 500 (Cust),
Positive : 0% .. 50% = Neutral, 50%+ = Leader, 80%+ = Leader+, 100%+ = Leader++
Negative : 0% .. -10% = Laggard, -10% .. -30% = Laggard+, -30%+ = Laggard++
>= 50% = Good, >= 0% = Acceptable, >= -10% Warning, < -10% = Stop
I = Accumulation/Distribution days over last 25 days as a clue for institutional support (Cust).
A delta is calculated by subtracting Distribution to Accumulation days.
> 0 = Good, = 0 = Acceptable, < 0 = Warning, < -5 = Stop
M = Market direction and exposure measured on S&500 closing between averages (Cust).
Varies from 0% Full Bear to 100% Full Bull
>= 80% = Good, >= 60% = Acceptable, >= 40% = Warning, < 40% = Stop
❖ Extra non CANSLIM Data.
RS = RS Rating.
>= 90 = Good, >= 80 = Accept, >= 50 = Warning, < 50 = Stop
Rev. = Revenue Growth Quarterly YoY.
>= 0% = Good, <0% = Stop
ROE = Return on Equity, Quarterly YoY.
>= 17% = Good, >= 0% = Acceptable, < 0% = Stop
Piotr. = Piotroski Score, www.investopedia.com (TV)
>= 7 = Good, >= 4 = Acceptable, < 4 = Stop
ATR = Average True Range over the last 20 days (Cust).
0% - 2% = Acceptable, 2% - 4% = Ideal, 4% - 6% = Warning, 5%+ = Stop.
Trend Days = Days since EMA150 is over EMA200 (Cust).
Always Good
D. to E. = Days left before Earnings. Maybe not a good idea buying just before earnings (Cust).
>= 28 = Good, >= 21 = Acceptable, >= 14 = Warning, < 14 = Stop
Avg Vol. = 50d Average Volume (Cust).
>= 100K = Good, < 100K = Acceptable
Vol. Today = Today's percentage volume compared to 50d average (Cust).
Always Good.
❖ Historical Data.
Optionally selectable historical data can be displayed for C, A, Revenue and ROE up to 20 quarters if available.
Quarterly numbers can also be displayed for A, C and Revenue.
Information can be shown in Chronological or Reverse Chronological order (default).
Increasing growth quarters are shown in white, while diminuing ones are shown in Yellow.
Transition from Losing to Profitable quarters are shown with an exclamation mark ‘!’
Finally, losing quarters are shown between parenthesis.
❖ MAs on chart.
Displays 200, 100, 50 and 20 days MAs on chart.
The MAs are also automatically scaled in the 1W time frame.
❖ New 52 Week High on chart.
A sun is shown on the chart the first time that a new 52 week high is reached.
The N cell shows a filled sun when a 52 week high is no older than a month, an lighter sun when it’s no older than a quarter or a moon otherwise.
❖ Pocket Pivots on chart.
Small triangles below the price are signaling pocket pivots.
❖ Bases on chart, formerly Darvas Boxes.
Draw bases as defined by Darvas boxes, both top or bottom of bases can be selected to be shown in order to only show resistance or support.
❖ Market exposure/direction indicator.
When charting S&P500 (SPX), Nasdaq 100 Index (NDX), Nasdaq composite (IXIC) or Dow Jownes Index (DJIA), the indicator switches to Market Exposure indicator, showing also Accumulation/Distribution days when volume information is available. This indication which varies from 0% to 100% is what is shown under the M letter in the CANSLIM table which is calculated on the S&P500.
❖ Follow Through Days indicator.
If you are an adept of the Low-cheat entry, then you will be highly interested by the Follow Through days indicator as measured in the S&P 500 and shown as diamonds on the chart.
The follow-through days are calculated on S&P500 but shown in current stock chart so you don’t need to chart the S&P 500 to know that a follow through day occurred.
Follow Through days show correctly on Daily time frame and most are also shown on the Weekly time frame as well.
They are also classified according to the market zone in which they occur:
0%-5% from peak = Pullback : FT day is not shown.
5%-10% from peak = Minor Correction : Minor FT days is shown.
10%-20% from peak = Correction : Intermediate FT days us shown
20+% from peak = Bear Market : Makor FT days is shown
❖ RS Line and Rating indicator.
A RS Line and Rating indicator can be added to the chart.
Relative Strength Rating Accuracy.
Please note that the RS Rating is not 100% accurate when compared to IBD values.
❖ Earning Line indicator.
An Earning Line indicator can be added to the chart.
❖ ATR Bands and ATR Trade calculator.
The motivation for this calculator came from my own need to enter trades on volatile stocks where the simple 7% Stop Loss rule doest not work.
It simply calculates the number of shares you can buy at any moment based on current stock price and using the lower ATR band as a stop loss.
A few words about the ATR Bands.
On this indicator the ATR bands are not drawn as a classical channel that follows the price.
The lower band is drawn as a support until it’s broken on a closing basis. It can’t be in a down trend.
The upper band is drawn as a resistance until it’s broken on a closing basis. It can’t be in an up trend.
The idea is that when price starts to fall down from a peak, it should not violate its lower band ATR and that means that we can use that level as a Stop Loss.
You must look back for the stock volatility and find out which ATR multiplier works well meaning that the ATR bands are not violated on normal pullbacks. By default, the indicator uses 5x multiplier.
❖ Extra things, visual features and default settings.
The first square cell of current quarter displays a check mark ‘V’ if the CANSLIM criteria is OK or acceptable or a cross ‘X’ otherwise.
The first square cell of historical C and Rev show respectively the count of last consecutive positive quarters.
There are different color themes from “Forest” to “Space” you can chose from to best fit your eyes.
You also have different table sizes going from “Micro” to “Huge” for better adjustment to the size of your display.
The default settings view show: Pocket Pivots, FT Days, MA50, RS Line and ATR Bands.
That's all, Enjoy!
Markov Chain [3D] | FractalystWhat exactly is a Markov Chain?
This indicator uses a Markov Chain model to analyze, quantify, and visualize the transitions between market regimes (Bull, Bear, Neutral) on your chart. It dynamically detects these regimes in real-time, calculates transition probabilities, and displays them as animated 3D spheres and arrows, giving traders intuitive insight into current and future market conditions.
How does a Markov Chain work, and how should I read this spheres-and-arrows diagram?
Think of three weather modes: Sunny, Rainy, Cloudy.
Each sphere is one mode. The loop on a sphere means “stay the same next step” (e.g., Sunny again tomorrow).
The arrows leaving a sphere show where things usually go next if they change (e.g., Sunny moving to Cloudy).
Some paths matter more than others. A more prominent loop means the current mode tends to persist. A more prominent outgoing arrow means a change to that destination is the usual next step.
Direction isn’t symmetric: moving Sunny→Cloudy can behave differently than Cloudy→Sunny.
Now relabel the spheres to markets: Bull, Bear, Neutral.
Spheres: market regimes (uptrend, downtrend, range).
Self‑loop: tendency for the current regime to continue on the next bar.
Arrows: the most common next regime if a switch happens.
How to read: Start at the sphere that matches current bar state. If the loop stands out, expect continuation. If one outgoing path stands out, that switch is the typical next step. Opposite directions can differ (Bear→Neutral doesn’t have to match Neutral→Bear).
What states and transitions are shown?
The three market states visualized are:
Bullish (Bull): Upward or strong-market regime.
Bearish (Bear): Downward or weak-market regime.
Neutral: Sideways or range-bound regime.
Bidirectional animated arrows and probability labels show how likely the market is to move from one regime to another (e.g., Bull → Bear or Neutral → Bull).
How does the regime detection system work?
You can use either built-in price returns (based on adaptive Z-score normalization) or supply three custom indicators (such as volume, oscillators, etc.).
Values are statistically normalized (Z-scored) over a configurable lookback period.
The normalized outputs are classified into Bull, Bear, or Neutral zones.
If using three indicators, their regime signals are averaged and smoothed for robustness.
How are transition probabilities calculated?
On every confirmed bar, the algorithm tracks the sequence of detected market states, then builds a rolling window of transitions.
The code maintains a transition count matrix for all regime pairs (e.g., Bull → Bear).
Transition probabilities are extracted for each possible state change using Laplace smoothing for numerical stability, and frequently updated in real-time.
What is unique about the visualization?
3D animated spheres represent each regime and change visually when active.
Animated, bidirectional arrows reveal transition probabilities and allow you to see both dominant and less likely regime flows.
Particles (moving dots) animate along the arrows, enhancing the perception of regime flow direction and speed.
All elements dynamically update with each new price bar, providing a live market map in an intuitive, engaging format.
Can I use custom indicators for regime classification?
Yes! Enable the "Custom Indicators" switch and select any three chart series as inputs. These will be normalized and combined (each with equal weight), broadening the regime classification beyond just price-based movement.
What does the “Lookback Period” control?
Lookback Period (default: 100) sets how much historical data builds the probability matrix. Shorter periods adapt faster to regime changes but may be noisier. Longer periods are more stable but slower to adapt.
How is this different from a Hidden Markov Model (HMM)?
It sets the window for both regime detection and probability calculations. Lower values make the system more reactive, but potentially noisier. Higher values smooth estimates and make the system more robust.
How is this Markov Chain different from a Hidden Markov Model (HMM)?
Markov Chain (as here): All market regimes (Bull, Bear, Neutral) are directly observable on the chart. The transition matrix is built from actual detected regimes, keeping the model simple and interpretable.
Hidden Markov Model: The actual regimes are unobservable ("hidden") and must be inferred from market output or indicator "emissions" using statistical learning algorithms. HMMs are more complex, can capture more subtle structure, but are harder to visualize and require additional machine learning steps for training.
A standard Markov Chain models transitions between observable states using a simple transition matrix, while a Hidden Markov Model assumes the true states are hidden (latent) and must be inferred from observable “emissions” like price or volume data. In practical terms, a Markov Chain is transparent and easier to implement and interpret; an HMM is more expressive but requires statistical inference to estimate hidden states from data.
Markov Chain: states are observable; you directly count or estimate transition probabilities between visible states. This makes it simpler, faster, and easier to validate and tune.
HMM: states are hidden; you only observe emissions generated by those latent states. Learning involves machine learning/statistical algorithms (commonly Baum–Welch/EM for training and Viterbi for decoding) to infer both the transition dynamics and the most likely hidden state sequence from data.
How does the indicator avoid “repainting” or look-ahead bias?
All regime changes and matrix updates happen only on confirmed (closed) bars, so no future data is leaked, ensuring reliable real-time operation.
Are there practical tuning tips?
Tune the Lookback Period for your asset/timeframe: shorter for fast markets, longer for stability.
Use custom indicators if your asset has unique regime drivers.
Watch for rapid changes in transition probabilities as early warning of a possible regime shift.
Who is this indicator for?
Quants and quantitative researchers exploring probabilistic market modeling, especially those interested in regime-switching dynamics and Markov models.
Programmers and system developers who need a probabilistic regime filter for systematic and algorithmic backtesting:
The Markov Chain indicator is ideally suited for programmatic integration via its bias output (1 = Bull, 0 = Neutral, -1 = Bear).
Although the visualization is engaging, the core output is designed for automated, rules-based workflows—not for discretionary/manual trading decisions.
Developers can connect the indicator’s output directly to their Pine Script logic (using input.source()), allowing rapid and robust backtesting of regime-based strategies.
It acts as a plug-and-play regime filter: simply plug the bias output into your entry/exit logic, and you have a scientifically robust, probabilistically-derived signal for filtering, timing, position sizing, or risk regimes.
The MC's output is intentionally "trinary" (1/0/-1), focusing on clear regime states for unambiguous decision-making in code. If you require nuanced, multi-probability or soft-label state vectors, consider expanding the indicator or stacking it with a probability-weighted logic layer in your scripting.
Because it avoids subjectivity, this approach is optimal for systematic quants, algo developers building backtested, repeatable strategies based on probabilistic regime analysis.
What's the mathematical foundation behind this?
The mathematical foundation behind this Markov Chain indicator—and probabilistic regime detection in finance—draws from two principal models: the (standard) Markov Chain and the Hidden Markov Model (HMM).
How to use this indicator programmatically?
The Markov Chain indicator automatically exports a bias value (+1 for Bullish, -1 for Bearish, 0 for Neutral) as a plot visible in the Data Window. This allows you to integrate its regime signal into your own scripts and strategies for backtesting, automation, or live trading.
Step-by-Step Integration with Pine Script (input.source)
Add the Markov Chain indicator to your chart.
This must be done first, since your custom script will "pull" the bias signal from the indicator's plot.
In your strategy, create an input using input.source()
Example:
//@version=5
strategy("MC Bias Strategy Example")
mcBias = input.source(close, "MC Bias Source")
After saving, go to your script’s settings. For the “MC Bias Source” input, select the plot/output of the Markov Chain indicator (typically its bias plot).
Use the bias in your trading logic
Example (long only on Bull, flat otherwise):
if mcBias == 1
strategy.entry("Long", strategy.long)
else
strategy.close("Long")
For more advanced workflows, combine mcBias with additional filters or trailing stops.
How does this work behind-the-scenes?
TradingView’s input.source() lets you use any plot from another indicator as a real-time, “live” data feed in your own script (source).
The selected bias signal is available to your Pine code as a variable, enabling logical decisions based on regime (trend-following, mean-reversion, etc.).
This enables powerful strategy modularity : decouple regime detection from entry/exit logic, allowing fast experimentation without rewriting core signal code.
Integrating 45+ Indicators with Your Markov Chain — How & Why
The Enhanced Custom Indicators Export script exports a massive suite of over 45 technical indicators—ranging from classic momentum (RSI, MACD, Stochastic, etc.) to trend, volume, volatility, and oscillator tools—all pre-calculated, centered/scaled, and available as plots.
// Enhanced Custom Indicators Export - 45 Technical Indicators
// Comprehensive technical analysis suite for advanced market regime detection
//@version=6
indicator('Enhanced Custom Indicators Export | Fractalyst', shorttitle='Enhanced CI Export', overlay=false, scale=scale.right, max_labels_count=500, max_lines_count=500)
// |----- Input Parameters -----| //
momentum_group = "Momentum Indicators"
trend_group = "Trend Indicators"
volume_group = "Volume Indicators"
volatility_group = "Volatility Indicators"
oscillator_group = "Oscillator Indicators"
display_group = "Display Settings"
// Common lengths
length_14 = input.int(14, "Standard Length (14)", minval=1, maxval=100, group=momentum_group)
length_20 = input.int(20, "Medium Length (20)", minval=1, maxval=200, group=trend_group)
length_50 = input.int(50, "Long Length (50)", minval=1, maxval=200, group=trend_group)
// Display options
show_table = input.bool(true, "Show Values Table", group=display_group)
table_size = input.string("Small", "Table Size", options= , group=display_group)
// |----- MOMENTUM INDICATORS (15 indicators) -----| //
// 1. RSI (Relative Strength Index)
rsi_14 = ta.rsi(close, length_14)
rsi_centered = rsi_14 - 50
// 2. Stochastic Oscillator
stoch_k = ta.stoch(close, high, low, length_14)
stoch_d = ta.sma(stoch_k, 3)
stoch_centered = stoch_k - 50
// 3. Williams %R
williams_r = ta.stoch(close, high, low, length_14) - 100
// 4. MACD (Moving Average Convergence Divergence)
= ta.macd(close, 12, 26, 9)
// 5. Momentum (Rate of Change)
momentum = ta.mom(close, length_14)
momentum_pct = (momentum / close ) * 100
// 6. Rate of Change (ROC)
roc = ta.roc(close, length_14)
// 7. Commodity Channel Index (CCI)
cci = ta.cci(close, length_20)
// 8. Money Flow Index (MFI)
mfi = ta.mfi(close, length_14)
mfi_centered = mfi - 50
// 9. Awesome Oscillator (AO)
ao = ta.sma(hl2, 5) - ta.sma(hl2, 34)
// 10. Accelerator Oscillator (AC)
ac = ao - ta.sma(ao, 5)
// 11. Chande Momentum Oscillator (CMO)
cmo = ta.cmo(close, length_14)
// 12. Detrended Price Oscillator (DPO)
dpo = close - ta.sma(close, length_20)
// 13. Price Oscillator (PPO)
ppo = ta.sma(close, 12) - ta.sma(close, 26)
ppo_pct = (ppo / ta.sma(close, 26)) * 100
// 14. TRIX
trix_ema1 = ta.ema(close, length_14)
trix_ema2 = ta.ema(trix_ema1, length_14)
trix_ema3 = ta.ema(trix_ema2, length_14)
trix = ta.roc(trix_ema3, 1) * 10000
// 15. Klinger Oscillator
klinger = ta.ema(volume * (high + low + close) / 3, 34) - ta.ema(volume * (high + low + close) / 3, 55)
// 16. Fisher Transform
fisher_hl2 = 0.5 * (hl2 - ta.lowest(hl2, 10)) / (ta.highest(hl2, 10) - ta.lowest(hl2, 10)) - 0.25
fisher = 0.5 * math.log((1 + fisher_hl2) / (1 - fisher_hl2))
// 17. Stochastic RSI
stoch_rsi = ta.stoch(rsi_14, rsi_14, rsi_14, length_14)
stoch_rsi_centered = stoch_rsi - 50
// 18. Relative Vigor Index (RVI)
rvi_num = ta.swma(close - open)
rvi_den = ta.swma(high - low)
rvi = rvi_den != 0 ? rvi_num / rvi_den : 0
// 19. Balance of Power (BOP)
bop = (close - open) / (high - low)
// |----- TREND INDICATORS (10 indicators) -----| //
// 20. Simple Moving Average Momentum
sma_20 = ta.sma(close, length_20)
sma_momentum = ((close - sma_20) / sma_20) * 100
// 21. Exponential Moving Average Momentum
ema_20 = ta.ema(close, length_20)
ema_momentum = ((close - ema_20) / ema_20) * 100
// 22. Parabolic SAR
sar = ta.sar(0.02, 0.02, 0.2)
sar_trend = close > sar ? 1 : -1
// 23. Linear Regression Slope
lr_slope = ta.linreg(close, length_20, 0) - ta.linreg(close, length_20, 1)
// 24. Moving Average Convergence (MAC)
mac = ta.sma(close, 10) - ta.sma(close, 30)
// 25. Trend Intensity Index (TII)
tii_sum = 0.0
for i = 1 to length_20
tii_sum += close > close ? 1 : 0
tii = (tii_sum / length_20) * 100
// 26. Ichimoku Cloud Components
ichimoku_tenkan = (ta.highest(high, 9) + ta.lowest(low, 9)) / 2
ichimoku_kijun = (ta.highest(high, 26) + ta.lowest(low, 26)) / 2
ichimoku_signal = ichimoku_tenkan > ichimoku_kijun ? 1 : -1
// 27. MESA Adaptive Moving Average (MAMA)
mama_alpha = 2.0 / (length_20 + 1)
mama = ta.ema(close, length_20)
mama_momentum = ((close - mama) / mama) * 100
// 28. Zero Lag Exponential Moving Average (ZLEMA)
zlema_lag = math.round((length_20 - 1) / 2)
zlema_data = close + (close - close )
zlema = ta.ema(zlema_data, length_20)
zlema_momentum = ((close - zlema) / zlema) * 100
// |----- VOLUME INDICATORS (6 indicators) -----| //
// 29. On-Balance Volume (OBV)
obv = ta.obv
// 30. Volume Rate of Change (VROC)
vroc = ta.roc(volume, length_14)
// 31. Price Volume Trend (PVT)
pvt = ta.pvt
// 32. Negative Volume Index (NVI)
nvi = 0.0
nvi := volume < volume ? nvi + ((close - close ) / close ) * nvi : nvi
// 33. Positive Volume Index (PVI)
pvi = 0.0
pvi := volume > volume ? pvi + ((close - close ) / close ) * pvi : pvi
// 34. Volume Oscillator
vol_osc = ta.sma(volume, 5) - ta.sma(volume, 10)
// 35. Ease of Movement (EOM)
eom_distance = high - low
eom_box_height = volume / 1000000
eom = eom_box_height != 0 ? eom_distance / eom_box_height : 0
eom_sma = ta.sma(eom, length_14)
// 36. Force Index
force_index = volume * (close - close )
force_index_sma = ta.sma(force_index, length_14)
// |----- VOLATILITY INDICATORS (10 indicators) -----| //
// 37. Average True Range (ATR)
atr = ta.atr(length_14)
atr_pct = (atr / close) * 100
// 38. Bollinger Bands Position
bb_basis = ta.sma(close, length_20)
bb_dev = 2.0 * ta.stdev(close, length_20)
bb_upper = bb_basis + bb_dev
bb_lower = bb_basis - bb_dev
bb_position = bb_dev != 0 ? (close - bb_basis) / bb_dev : 0
bb_width = bb_dev != 0 ? (bb_upper - bb_lower) / bb_basis * 100 : 0
// 39. Keltner Channels Position
kc_basis = ta.ema(close, length_20)
kc_range = ta.ema(ta.tr, length_20)
kc_upper = kc_basis + (2.0 * kc_range)
kc_lower = kc_basis - (2.0 * kc_range)
kc_position = kc_range != 0 ? (close - kc_basis) / kc_range : 0
// 40. Donchian Channels Position
dc_upper = ta.highest(high, length_20)
dc_lower = ta.lowest(low, length_20)
dc_basis = (dc_upper + dc_lower) / 2
dc_position = (dc_upper - dc_lower) != 0 ? (close - dc_basis) / (dc_upper - dc_lower) : 0
// 41. Standard Deviation
std_dev = ta.stdev(close, length_20)
std_dev_pct = (std_dev / close) * 100
// 42. Relative Volatility Index (RVI)
rvi_up = ta.stdev(close > close ? close : 0, length_14)
rvi_down = ta.stdev(close < close ? close : 0, length_14)
rvi_total = rvi_up + rvi_down
rvi_volatility = rvi_total != 0 ? (rvi_up / rvi_total) * 100 : 50
// 43. Historical Volatility
hv_returns = math.log(close / close )
hv = ta.stdev(hv_returns, length_20) * math.sqrt(252) * 100
// 44. Garman-Klass Volatility
gk_vol = math.log(high/low) * math.log(high/low) - (2*math.log(2)-1) * math.log(close/open) * math.log(close/open)
gk_volatility = math.sqrt(ta.sma(gk_vol, length_20)) * 100
// 45. Parkinson Volatility
park_vol = math.log(high/low) * math.log(high/low)
parkinson = math.sqrt(ta.sma(park_vol, length_20) / (4 * math.log(2))) * 100
// 46. Rogers-Satchell Volatility
rs_vol = math.log(high/close) * math.log(high/open) + math.log(low/close) * math.log(low/open)
rogers_satchell = math.sqrt(ta.sma(rs_vol, length_20)) * 100
// |----- OSCILLATOR INDICATORS (5 indicators) -----| //
// 47. Elder Ray Index
elder_bull = high - ta.ema(close, 13)
elder_bear = low - ta.ema(close, 13)
elder_power = elder_bull + elder_bear
// 48. Schaff Trend Cycle (STC)
stc_macd = ta.ema(close, 23) - ta.ema(close, 50)
stc_k = ta.stoch(stc_macd, stc_macd, stc_macd, 10)
stc_d = ta.ema(stc_k, 3)
stc = ta.stoch(stc_d, stc_d, stc_d, 10)
// 49. Coppock Curve
coppock_roc1 = ta.roc(close, 14)
coppock_roc2 = ta.roc(close, 11)
coppock = ta.wma(coppock_roc1 + coppock_roc2, 10)
// 50. Know Sure Thing (KST)
kst_roc1 = ta.roc(close, 10)
kst_roc2 = ta.roc(close, 15)
kst_roc3 = ta.roc(close, 20)
kst_roc4 = ta.roc(close, 30)
kst = ta.sma(kst_roc1, 10) + 2*ta.sma(kst_roc2, 10) + 3*ta.sma(kst_roc3, 10) + 4*ta.sma(kst_roc4, 15)
// 51. Percentage Price Oscillator (PPO)
ppo_line = ((ta.ema(close, 12) - ta.ema(close, 26)) / ta.ema(close, 26)) * 100
ppo_signal = ta.ema(ppo_line, 9)
ppo_histogram = ppo_line - ppo_signal
// |----- PLOT MAIN INDICATORS -----| //
// Plot key momentum indicators
plot(rsi_centered, title="01_RSI_Centered", color=color.purple, linewidth=1)
plot(stoch_centered, title="02_Stoch_Centered", color=color.blue, linewidth=1)
plot(williams_r, title="03_Williams_R", color=color.red, linewidth=1)
plot(macd_histogram, title="04_MACD_Histogram", color=color.orange, linewidth=1)
plot(cci, title="05_CCI", color=color.green, linewidth=1)
// Plot trend indicators
plot(sma_momentum, title="06_SMA_Momentum", color=color.navy, linewidth=1)
plot(ema_momentum, title="07_EMA_Momentum", color=color.maroon, linewidth=1)
plot(sar_trend, title="08_SAR_Trend", color=color.teal, linewidth=1)
plot(lr_slope, title="09_LR_Slope", color=color.lime, linewidth=1)
plot(mac, title="10_MAC", color=color.fuchsia, linewidth=1)
// Plot volatility indicators
plot(atr_pct, title="11_ATR_Pct", color=color.yellow, linewidth=1)
plot(bb_position, title="12_BB_Position", color=color.aqua, linewidth=1)
plot(kc_position, title="13_KC_Position", color=color.olive, linewidth=1)
plot(std_dev_pct, title="14_StdDev_Pct", color=color.silver, linewidth=1)
plot(bb_width, title="15_BB_Width", color=color.gray, linewidth=1)
// Plot volume indicators
plot(vroc, title="16_VROC", color=color.blue, linewidth=1)
plot(eom_sma, title="17_EOM", color=color.red, linewidth=1)
plot(vol_osc, title="18_Vol_Osc", color=color.green, linewidth=1)
plot(force_index_sma, title="19_Force_Index", color=color.orange, linewidth=1)
plot(obv, title="20_OBV", color=color.purple, linewidth=1)
// Plot additional oscillators
plot(ao, title="21_Awesome_Osc", color=color.navy, linewidth=1)
plot(cmo, title="22_CMO", color=color.maroon, linewidth=1)
plot(dpo, title="23_DPO", color=color.teal, linewidth=1)
plot(trix, title="24_TRIX", color=color.lime, linewidth=1)
plot(fisher, title="25_Fisher", color=color.fuchsia, linewidth=1)
// Plot more momentum indicators
plot(mfi_centered, title="26_MFI_Centered", color=color.yellow, linewidth=1)
plot(ac, title="27_AC", color=color.aqua, linewidth=1)
plot(ppo_pct, title="28_PPO_Pct", color=color.olive, linewidth=1)
plot(stoch_rsi_centered, title="29_StochRSI_Centered", color=color.silver, linewidth=1)
plot(klinger, title="30_Klinger", color=color.gray, linewidth=1)
// Plot trend continuation
plot(tii, title="31_TII", color=color.blue, linewidth=1)
plot(ichimoku_signal, title="32_Ichimoku_Signal", color=color.red, linewidth=1)
plot(mama_momentum, title="33_MAMA_Momentum", color=color.green, linewidth=1)
plot(zlema_momentum, title="34_ZLEMA_Momentum", color=color.orange, linewidth=1)
plot(bop, title="35_BOP", color=color.purple, linewidth=1)
// Plot volume continuation
plot(nvi, title="36_NVI", color=color.navy, linewidth=1)
plot(pvi, title="37_PVI", color=color.maroon, linewidth=1)
plot(momentum_pct, title="38_Momentum_Pct", color=color.teal, linewidth=1)
plot(roc, title="39_ROC", color=color.lime, linewidth=1)
plot(rvi, title="40_RVI", color=color.fuchsia, linewidth=1)
// Plot volatility continuation
plot(dc_position, title="41_DC_Position", color=color.yellow, linewidth=1)
plot(rvi_volatility, title="42_RVI_Volatility", color=color.aqua, linewidth=1)
plot(hv, title="43_Historical_Vol", color=color.olive, linewidth=1)
plot(gk_volatility, title="44_GK_Volatility", color=color.silver, linewidth=1)
plot(parkinson, title="45_Parkinson_Vol", color=color.gray, linewidth=1)
// Plot final oscillators
plot(rogers_satchell, title="46_RS_Volatility", color=color.blue, linewidth=1)
plot(elder_power, title="47_Elder_Power", color=color.red, linewidth=1)
plot(stc, title="48_STC", color=color.green, linewidth=1)
plot(coppock, title="49_Coppock", color=color.orange, linewidth=1)
plot(kst, title="50_KST", color=color.purple, linewidth=1)
// Plot final indicators
plot(ppo_histogram, title="51_PPO_Histogram", color=color.navy, linewidth=1)
plot(pvt, title="52_PVT", color=color.maroon, linewidth=1)
// |----- Reference Lines -----| //
hline(0, "Zero Line", color=color.gray, linestyle=hline.style_dashed, linewidth=1)
hline(50, "Midline", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
hline(-50, "Lower Midline", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
hline(25, "Upper Threshold", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
hline(-25, "Lower Threshold", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
// |----- Enhanced Information Table -----| //
if show_table and barstate.islast
table_position = position.top_right
table_text_size = table_size == "Tiny" ? size.tiny : table_size == "Small" ? size.small : size.normal
var table info_table = table.new(table_position, 3, 18, bgcolor=color.new(color.white, 85), border_width=1, border_color=color.gray)
// Headers
table.cell(info_table, 0, 0, 'Category', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.blue, 70))
table.cell(info_table, 1, 0, 'Indicator', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.blue, 70))
table.cell(info_table, 2, 0, 'Value', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.blue, 70))
// Key Momentum Indicators
table.cell(info_table, 0, 1, 'MOMENTUM', text_color=color.purple, text_size=table_text_size, bgcolor=color.new(color.purple, 90))
table.cell(info_table, 1, 1, 'RSI Centered', text_color=color.purple, text_size=table_text_size)
table.cell(info_table, 2, 1, str.tostring(rsi_centered, '0.00'), text_color=color.purple, text_size=table_text_size)
table.cell(info_table, 0, 2, '', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 1, 2, 'Stoch Centered', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 2, 2, str.tostring(stoch_centered, '0.00'), text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 0, 3, '', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 1, 3, 'Williams %R', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 2, 3, str.tostring(williams_r, '0.00'), text_color=color.red, text_size=table_text_size)
table.cell(info_table, 0, 4, '', text_color=color.orange, text_size=table_text_size)
table.cell(info_table, 1, 4, 'MACD Histogram', text_color=color.orange, text_size=table_text_size)
table.cell(info_table, 2, 4, str.tostring(macd_histogram, '0.000'), text_color=color.orange, text_size=table_text_size)
table.cell(info_table, 0, 5, '', text_color=color.green, text_size=table_text_size)
table.cell(info_table, 1, 5, 'CCI', text_color=color.green, text_size=table_text_size)
table.cell(info_table, 2, 5, str.tostring(cci, '0.00'), text_color=color.green, text_size=table_text_size)
// Key Trend Indicators
table.cell(info_table, 0, 6, 'TREND', text_color=color.navy, text_size=table_text_size, bgcolor=color.new(color.navy, 90))
table.cell(info_table, 1, 6, 'SMA Momentum %', text_color=color.navy, text_size=table_text_size)
table.cell(info_table, 2, 6, str.tostring(sma_momentum, '0.00'), text_color=color.navy, text_size=table_text_size)
table.cell(info_table, 0, 7, '', text_color=color.maroon, text_size=table_text_size)
table.cell(info_table, 1, 7, 'EMA Momentum %', text_color=color.maroon, text_size=table_text_size)
table.cell(info_table, 2, 7, str.tostring(ema_momentum, '0.00'), text_color=color.maroon, text_size=table_text_size)
table.cell(info_table, 0, 8, '', text_color=color.teal, text_size=table_text_size)
table.cell(info_table, 1, 8, 'SAR Trend', text_color=color.teal, text_size=table_text_size)
table.cell(info_table, 2, 8, str.tostring(sar_trend, '0'), text_color=color.teal, text_size=table_text_size)
table.cell(info_table, 0, 9, '', text_color=color.lime, text_size=table_text_size)
table.cell(info_table, 1, 9, 'Linear Regression', text_color=color.lime, text_size=table_text_size)
table.cell(info_table, 2, 9, str.tostring(lr_slope, '0.000'), text_color=color.lime, text_size=table_text_size)
// Key Volatility Indicators
table.cell(info_table, 0, 10, 'VOLATILITY', text_color=color.yellow, text_size=table_text_size, bgcolor=color.new(color.yellow, 90))
table.cell(info_table, 1, 10, 'ATR %', text_color=color.yellow, text_size=table_text_size)
table.cell(info_table, 2, 10, str.tostring(atr_pct, '0.00'), text_color=color.yellow, text_size=table_text_size)
table.cell(info_table, 0, 11, '', text_color=color.aqua, text_size=table_text_size)
table.cell(info_table, 1, 11, 'BB Position', text_color=color.aqua, text_size=table_text_size)
table.cell(info_table, 2, 11, str.tostring(bb_position, '0.00'), text_color=color.aqua, text_size=table_text_size)
table.cell(info_table, 0, 12, '', text_color=color.olive, text_size=table_text_size)
table.cell(info_table, 1, 12, 'KC Position', text_color=color.olive, text_size=table_text_size)
table.cell(info_table, 2, 12, str.tostring(kc_position, '0.00'), text_color=color.olive, text_size=table_text_size)
// Key Volume Indicators
table.cell(info_table, 0, 13, 'VOLUME', text_color=color.blue, text_size=table_text_size, bgcolor=color.new(color.blue, 90))
table.cell(info_table, 1, 13, 'Volume ROC', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 2, 13, str.tostring(vroc, '0.00'), text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 0, 14, '', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 1, 14, 'EOM', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 2, 14, str.tostring(eom_sma, '0.000'), text_color=color.red, text_size=table_text_size)
// Key Oscillators
table.cell(info_table, 0, 15, 'OSCILLATORS', text_color=color.purple, text_size=table_text_size, bgcolor=color.new(color.purple, 90))
table.cell(info_table, 1, 15, 'Awesome Osc', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 2, 15, str.tostring(ao, '0.000'), text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 0, 16, '', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 1, 16, 'Fisher Transform', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 2, 16, str.tostring(fisher, '0.000'), text_color=color.red, text_size=table_text_size)
// Summary Statistics
table.cell(info_table, 0, 17, 'SUMMARY', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.gray, 70))
table.cell(info_table, 1, 17, 'Total Indicators: 52', text_color=color.black, text_size=table_text_size)
regime_color = rsi_centered > 10 ? color.green : rsi_centered < -10 ? color.red : color.gray
regime_text = rsi_centered > 10 ? "BULLISH" : rsi_centered < -10 ? "BEARISH" : "NEUTRAL"
table.cell(info_table, 2, 17, regime_text, text_color=regime_color, text_size=table_text_size)
This makes it the perfect “indicator backbone” for quantitative and systematic traders who want to prototype, combine, and test new regime detection models—especially in combination with the Markov Chain indicator.
How to use this script with the Markov Chain for research and backtesting:
Add the Enhanced Indicator Export to your chart.
Every calculated indicator is available as an individual data stream.
Connect the indicator(s) you want as custom input(s) to the Markov Chain’s “Custom Indicators” option.
In the Markov Chain indicator’s settings, turn ON the custom indicator mode.
For each of the three custom indicator inputs, select the exported plot from the Enhanced Export script—the menu lists all 45+ signals by name.
This creates a powerful, modular regime-detection engine where you can mix-and-match momentum, trend, volume, or custom combinations for advanced filtering.
Backtest regime logic directly.
Once you’ve connected your chosen indicators, the Markov Chain script performs regime detection (Bull/Neutral/Bear) based on your selected features—not just price returns.
The regime detection is robust, automatically normalized (using Z-score), and outputs bias (1, -1, 0) for plug-and-play integration.
Export the regime bias for programmatic use.
As described above, use input.source() in your Pine Script strategy or system and link the bias output.
You can now filter signals, control trade direction/size, or design pairs-trading that respect true, indicator-driven market regimes.
With this framework, you’re not limited to static or simplistic regime filters. You can rigorously define, test, and refine what “market regime” means for your strategies—using the technical features that matter most to you.
Optimize your signal generation by backtesting across a universe of meaningful indicator blends.
Enhance risk management with objective, real-time regime boundaries.
Accelerate your research: iterate quickly, swap indicator components, and see results with minimal code changes.
Automate multi-asset or pairs-trading by integrating regime context directly into strategy logic.
Add both scripts to your chart, connect your preferred features, and start investigating your best regime-based trades—entirely within the TradingView ecosystem.
References & Further Reading
Ang, A., & Bekaert, G. (2002). “Regime Switches in Interest Rates.” Journal of Business & Economic Statistics, 20(2), 163–182.
Hamilton, J. D. (1989). “A New Approach to the Economic Analysis of Nonstationary Time Series and the Business Cycle.” Econometrica, 57(2), 357–384.
Markov, A. A. (1906). "Extension of the Limit Theorems of Probability Theory to a Sum of Variables Connected in a Chain." The Notes of the Imperial Academy of Sciences of St. Petersburg.
Guidolin, M., & Timmermann, A. (2007). “Asset Allocation under Multivariate Regime Switching.” Journal of Economic Dynamics and Control, 31(11), 3503–3544.
Murphy, J. J. (1999). Technical Analysis of the Financial Markets. New York Institute of Finance.
Brock, W., Lakonishok, J., & LeBaron, B. (1992). “Simple Technical Trading Rules and the Stochastic Properties of Stock Returns.” Journal of Finance, 47(5), 1731–1764.
Zucchini, W., MacDonald, I. L., & Langrock, R. (2017). Hidden Markov Models for Time Series: An Introduction Using R (2nd ed.). Chapman and Hall/CRC.
On Quantitative Finance and Markov Models:
Lo, A. W., & Hasanhodzic, J. (2009). The Heretics of Finance: Conversations with Leading Practitioners of Technical Analysis. Bloomberg Press.
Patterson, S. (2016). The Man Who Solved the Market: How Jim Simons Launched the Quant Revolution. Penguin Press.
TradingView Pine Script Documentation: www.tradingview.com
TradingView Blog: “Use an Input From Another Indicator With Your Strategy” www.tradingview.com
GeeksforGeeks: “What is the Difference Between Markov Chains and Hidden Markov Models?” www.geeksforgeeks.org
What makes this indicator original and unique?
- On‑chart, real‑time Markov. The chain is drawn directly on your chart. You see the current regime, its tendency to stay (self‑loop), and the usual next step (arrows) as bars confirm.
- Source‑agnostic by design. The engine runs on any series you select via input.source() — price, your own oscillator, a composite score, anything you compute in the script.
- Automatic normalization + regime mapping. Different inputs live on different scales. The script standardizes your chosen source and maps it into clear regimes (e.g., Bull / Bear / Neutral) without you micromanaging thresholds each time.
- Rolling, bar‑by‑bar learning. Transition tendencies are computed from a rolling window of confirmed bars. What you see is exactly what the market did in that window.
- Fast experimentation. Switch the source, adjust the window, and the Markov view updates instantly. It’s a rapid way to test ideas and feel regime persistence/switch behavior.
Integrate your own signals (using input.source())
- In settings, choose the Source . This is powered by input.source() .
- Feed it price, an indicator you compute inside the script, or a custom composite series.
- The script will automatically normalize that series and process it through the Markov engine, mapping it to regimes and updating the on‑chart spheres/arrows in real time.
Credits:
Deep gratitude to @RicardoSantos for both the foundational Markov chain processing engine and inspiring open-source contributions, which made advanced probabilistic market modeling accessible to the TradingView community.
Special thanks to @Alien_Algorithms for the innovative and visually stunning 3D sphere logic that powers the indicator’s animated, regime-based visualization.
Disclaimer
This tool summarizes recent behavior. It is not financial advice and not a guarantee of future results.
Smart Money Proxy IndexOverview
The Smart Money Proxy Index (SMPI) is an educational tool that attempts to identify potential institutional-style behavior patterns using publicly available market data. This comprehensive tool combines multiple institutional analysis techniques into a single, easy-to-read 0-100 oscillator.
Important Disclaimer
This is an educational proxy indicator that analyzes volume and price patterns. It cannot identify actual institutional trading activity and should not be interpreted as tracking real "smart money." Use for educational purposes and combine with other analysis methods.
Inspiration & Methodology
This indicator is inspired by MAPsignals' Big Money Index (BMI) methodology but uses publicly available price and volume data with original calculations. This is an independent educational interpretation designed to teach smart money concepts to retail traders.
What It Analyzes
SMPI tracks potential "smart money" activity by combining:
Block Trading Detection - Identifies unusual volume surges with significant price impact
Money Flow Analysis - Volume-weighted price pressure using Money Flow Index
Accumulation/Distribution Patterns - Modified On-Balance Volume signals
Institutional Control Proxy - End-of-day positioning and control analysis
Key Features
– Multi-Component Analysis - Combines 4 different institutional detection methods
– BMI-Style 0-100 Scale - Familiar oscillator range with clear extreme levels
– Professional Visualization - Dynamic colors, gradient fills, and clean data table
– Comprehensive Alerts - Buy/sell signals plus divergence detection
– Fully Customizable - Adjust all parameters, colors, and display options
– Non-Repainting Signals - All alerts use confirmed data for reliability
– Educational Focus - Designed to teach institutional flow concepts
How to Interpret
Above 80: Potential smart money distribution phase (bearish pressure)
Below 20: Potential smart money accumulation phase (bullish opportunity)
Signal Generation: Buy signals when crossing above 20, sell signals when crossing below 80
Divergences: Price vs SMPI divergences can signal potential trend changes
Volume Confirmation: Higher volume ratios strengthen signal reliability
Best Practices
Timeframes: Works best on higher timeframes for institutional behavior analysis
Confirmation: Combine with other technical analysis tools and market context
Volume: Pay attention to volume confirmation in the data table
Context: Consider overall market conditions and fundamental factors
Risk Management: Not recommended as standalone trading system
Customizable Parameters
Block Volume Threshold: Sensitivity for unusual volume detection (default: 2.5x average)
SMPI Smoothing Period: Index calculation smoothing (default: 25 bars)
Extreme Levels: Overbought/oversold thresholds (default: 80/20)
Money Flow Length: MFI calculation period (default: 14)
Visual Options: Colors, signals, and display preferences
Available Alerts
Buy Signal: SMPI crosses above oversold level (20)
Sell Signal: SMPI crosses below overbought level (80)
Extreme Levels: Alerts when reaching overbought/oversold zones
Divergence Detection: Bullish and bearish price vs SMPI divergences
Educational Purpose & Limitations
This indicator is designed as an educational proxy for understanding institutional flow concepts. It analyzes publicly available price and volume data to identify potential smart money behavior patterns.
Cannot access actual institutional transaction data
Signals may be slower than day-trading indicators (intentionally designed for institutional timeframes)
Should be used in conjunction with other analysis methods
Past performance does not guarantee future results
What Makes This Different
Unlike simple volume or momentum indicators, SMPI combines multiple institutional analysis techniques into one comprehensive tool. The multi-component approach provides a more robust view of potential smart money activity.
Mutanabby_AI | Ultimate Algo | Remastered+Overview
The Mutanabby_AI Ultimate Algo Remastered+ represents a sophisticated trend-following system that combines Supertrend analysis with multiple moving average confirmations. This comprehensive indicator is designed specifically for identifying high-probability trend continuation and reversal opportunities across various market conditions.
Core Algorithm Components
**Supertrend Foundation**: The primary signal generation relies on a customizable Supertrend indicator with adjustable sensitivity (1-20 range). This adaptive trend-following tool uses Average True Range calculations to establish dynamic support and resistance levels that respond to market volatility.
**SMA Confirmation Matrix**: Multiple Simple Moving Averages (SMA 4, 5, 9, 13) provide layered confirmation for signal strength. The algorithm distinguishes between regular signals and "Strong" signals based on SMA 4 vs SMA 5 relationship, offering traders different conviction levels for position sizing.
**Trend Ribbon Visualization**: SMA 21 and SMA 34 create a visual trend ribbon that changes color based on their relationship. Green ribbon indicates bullish momentum while red signals bearish conditions, providing immediate visual trend context.
**RSI-Based Candle Coloring**: Advanced 61-tier RSI system colors candles with gradient precision from deep red (RSI ≤20) through purple transitions to bright green (RSI ≥79). This visual enhancement helps traders instantly assess momentum strength and overbought/oversold conditions.
Signal Generation Logic
**Buy Signal Criteria**:
- Price crosses above Supertrend line
- Close price must be above SMA 9 (trend confirmation)
- Signal strength determined by SMA 4 vs SMA 5 relationship
- "Strong Buy" when SMA 4 ≥ SMA 5
- Regular "Buy" when SMA 4 < SMA 5
**Sell Signal Criteria**:
- Price crosses below Supertrend line
- Close price must be below SMA 9 (trend confirmation)
- Signal strength based on SMA relationship
- "Strong Sell" when SMA 4 ≤ SMA 5
- Regular "Sell" when SMA 4 > SMA 5
Advanced Risk Management System
**Automated TP/SL Calculation**: The indicator automatically calculates stop loss and take profit levels using ATR-based measurements. Risk percentage and ATR length are fully customizable, allowing traders to adapt to different market conditions and personal risk tolerance.
**Multiple Take Profit Targets**:
- 1:1 Risk-Reward ratio for conservative profit taking
- 2:1 Risk-Reward for balanced trade management
- 3:1 Risk-Reward for maximum profit potential
**Visual Risk Display**: All risk management levels appear as both labels and optional trend lines on the chart. Customizable line styles (solid, dashed, dotted) and positioning ensure clear visualization without chart clutter.
**Dynamic Level Updates**: Risk levels automatically recalculate with each new signal, maintaining current market relevance throughout position lifecycles.
Visual Enhancement Features
**Customizable Display Options**: Toggle trend ribbon, TP/SL levels, and risk lines independently. Decimal precision adjustments (1-8 decimal places) accommodate different instrument price formats and personal preferences.
**Professional Label System**: Clean, informative labels show entry points, stop losses, and take profit targets with precise price levels. Labels automatically position themselves for optimal chart readability.
**Color-Coded Momentum**: The gradient RSI candle coloring system provides instant visual feedback on momentum strength, helping traders assess market energy and potential reversal zones.
Implementation Strategy
**Timeframe Optimization**: The algorithm performs effectively across multiple timeframes, with higher timeframes (4H, Daily) providing more reliable signals for swing trading. Lower timeframes work well for day trading with appropriate risk adjustments.
**Sensitivity Adjustment**: Lower sensitivity values (1-5) generate fewer but higher-quality signals, ideal for conservative approaches. Higher sensitivity (15-20) increases signal frequency for active trading styles.
**Risk Management Integration**: Use the automated risk calculations as baseline parameters, adjusting risk percentage based on account size and market conditions. The 1:1, 2:1, 3:1 targets enable systematic profit-taking strategies.
Market Application
**Trend Following Excellence**: Primary strength lies in capturing significant trend movements through the Supertrend foundation with SMA confirmation. The dual-layer approach reduces false signals common in single-indicator systems.
**Momentum Assessment**: RSI-based candle coloring provides immediate momentum context, helping traders assess signal strength and potential continuation probability.
**Range Detection**: The trend ribbon helps identify ranging conditions when SMA 21 and SMA 34 converge, alerting traders to potential breakout opportunities.
Performance Optimization
**Signal Quality**: The requirement for both Supertrend crossover AND SMA 9 confirmation significantly improves signal reliability compared to basic trend-following approaches.
**Visual Clarity**: The comprehensive visual system enables rapid market assessment without complex calculations, ideal for traders managing multiple instruments.
**Adaptability**: Extensive customization options allow fine-tuning for specific markets, trading styles, and risk preferences while maintaining the core algorithm integrity.
## Non-Repainting Design
**Educational Note**: This indicator uses standard TradingView functions (Supertrend, SMA, RSI) with normal behavior patterns. Real-time updates on current candles are expected and standard across all technical indicators. Historical signals on closed candles remain fixed and unchanged, ensuring reliable backtesting and analysis.
**Signal Confirmation**: Final signals are confirmed only when candles close, following standard technical analysis principles. The algorithm provides clear distinction between developing signals and confirmed entries.
Technical Specifications
**Supertrend Parameters**: Default sensitivity of 4 with ATR length of 11 provides balanced signal generation. Sensitivity range from 1-20 allows adaptation to different market volatilities and trading preferences.
**Moving Average Configuration**: SMA periods of 8, 9, and 13 create multi-layered trend confirmation, while SMA 21 and 34 form the visual trend ribbon for broader market context.
**Risk Management**: ATR-based calculations with customizable risk percentage ensure dynamic adaptation to market volatility while maintaining consistent risk exposure principles.
Recommended Settings
**Conservative Approach**: Sensitivity 4-5, RSI length 14, higher timeframes (4H, Daily) for swing trading with maximum signal reliability.
**Active Trading**: Sensitivity 6-8, RSI length 8-10, intermediate timeframes (1H) for balanced signal frequency and quality.
**Scalping Setup**: Sensitivity 10-15, RSI length 5-8, lower timeframes (15-30min) with enhanced risk management protocols.
## Conclusion
The Mutanabby_AI Ultimate Algo Remastered+ combines proven trend-following principles with modern visual enhancements and comprehensive risk management. The algorithm's strength lies in its multi-layered confirmation approach and automated risk calculations, providing both novice and experienced traders with clear signals and systematic trade management.
Success with this system requires understanding the relationship between signal strength indicators and adapting sensitivity settings to match current market conditions. The comprehensive visual feedback system enables rapid decision-making while the automated risk management ensures consistent trade parameters.
Practice with different sensitivity settings and timeframes to optimize performance for your specific trading style and risk tolerance. The algorithm's systematic approach provides an excellent framework for disciplined trend-following strategies across various market environments.
Bollinger Levels Table - Horizontal Support ZonesBollinger Levels Table - Horizontal Support Zones Indicator (with Customizable Options)
The "Bollinger Levels Table - Horizontal Support Zones" indicator is a comprehensive tool designed to help you identify potential support areas on your chart using moving averages and Bollinger Bands. The indicator displays an organized table of key price levels and draws horizontal lines on the chart, providing clear visibility of potential support zones.
What Does This Indicator Do?
This indicator aims to simplify support analysis by consolidating and displaying significant price levels derived from three different Bollinger Band settings: BB10, BB20, and BB50. It calculates both the Mid-line (Basis) and the Lower Band for each of these settings.
Furthermore, the indicator automatically arranges these levels from highest to lowest in an easy-to-read table, assigning a "Payment" label to each level. These "Payments" are simply labels to help you track the levels in descending order.
How Does This Indicator Work?
Bollinger Band Calculations: The indicator uses the standard Bollinger Band formula:
Mid-line (Basis): A Simple Moving Average (SMA) of the closing price over a specified period.
Standard Deviation (Dev): The standard deviation of the closing price over the same period, multiplied by a Multiplier.
Lower Band: The Mid-line minus the Standard Deviation.
These calculations are applied to three different periods: 10, 20, and 50, providing a variety of potential support levels based on different timeframes. You can adjust the values for these lengths (10, 20, 50) and the Multiplier through the indicator's settings.
Table Construction: A dynamic table is created on the chart (which can be positioned in the top or bottom right corner based on the current price's position). This table displays:
Indicator: The name of the Bollinger Band level (e.g., BB10 Mid, BB20 Lower).
Price: The exact price value of that level.
Payments: A label indicating the level's order in the table.
Level Ordering: All calculated levels are dynamically sorted from highest to lowest to present them in a logical order within the table.
Horizontal Line Plotting: Horizontal lines are drawn on the chart for each selected level, providing a visual representation of the potential support areas. These lines are colored black and have a consistent width for easy identification.
How to Use This Indicator:
This indicator is intended to provide potential entry points or accumulation zones for trades, especially for traders employing Dollar-Cost Averaging (DCA) strategies or building positions in stages. The levels displayed in the table and on the chart can represent potential support levels where one might consider initiating or adding to a position.
In the indicator's settings, you'll find important options:
Multiplier: Controls the width of the Bollinger Bands (default 2.0).
BB Lengths: Allows you to adjust the periods for the moving averages (default 20, 50, 10).
Visible Levels: This is the new feature! Here, you can select which levels you wish to see in the table and on the chart. Simply check or uncheck the boxes next to each level (BB10 Mid, BB10 Lower, and so on) to customize the indicator's display according to your strategy and needs.
Underlying Concepts:
This indicator is based on the principle that Bollinger Bands can act as dynamic support and resistance zones.
Mid-line (SMA): Often functions as a medium-term support or resistance.
Lower Band: Typically indicates that the price is relatively low and may find support, making it a potential area for buying or starting to build a position.
By combining different Bollinger Band timeframes (10, 20, 50), the indicator gives you a multi-timeframe perspective on support areas, helping you identify the most relevant levels for your strategy.
Note: While the indicator provides "Payments" for the levels, this is purely a sequential labeling within the table to assist your position-building strategy. There is no actual payment functionality associated with this indicator.
Candle Channel█ OVERVIEW
The "Candle Channel" indicator is a versatile technical analysis tool that plots a price channel based on the Simple Moving Average (SMA) of candlestick midpoints. The channel bands, calculated based on candlestick volatility, form dynamic support and resistance levels that adapt to price movements. The script generates signals for reversals from the bands and SMA breakouts, making it useful for both short-term and long-term traders. By adjusting the SMA length, the channel can vary in nature—from a wide channel encapsulating price movement to narrower support/resistance or trend-following bands. The channel width can be further customized using a scaling parameter, allowing adaptation to different trading styles and markets.
█ MECHANISM
Band Calculation
The indicator is based on the following calculations:
Candlestick Midpoint: Calculated as the arithmetic average of the candle’s high and low prices: (high + low) / 2.
Simple Moving Average (SMA): The average of candlestick midpoints over a specified length (default: 20 candles), forming the channel’s centerline.
Average Candle Height: Calculated as the average difference between the high and low prices (high - low) over the same SMA length, serving as a measure of market volatility.
Band Scaling: The user specifies a percentage of the average candle height (default: 200%), which is multiplied by the average height to create an offset. The upper band is SMA + offset, and the lower band is SMA - offset.Example: For an average candle height of 10 points and 200% scaling, the offset is 20 points, meaning the bands are ±20 points from the SMA.
Channel Characteristics: The SMA length determines the channel’s dynamics. Shorter SMA values (10–30) create a wide channel that contains price movement, ideal for scalping or short-term trading. Longer SMA values (above 30, e.g., 50–100) transform the channel into narrower support/resistance or trend-following bands, suitable for longer-term analysis. Band scaling further adjusts the channel width to match market volatility.
Signals
Reversal from Bands: Signals are generated when the price closes outside the band (above the upper or below the lower) and then returns to the channel, indicating a potential trend reversal.
SMA Breakout: Signals are generated when the price crosses the SMA upward (bullish signal) or downward (bearish signal), suggesting potential trend changes.
Visualization
Centerline: The SMA of candlestick midpoints, displayed as a thin line.
Channel Bands: Upper and lower channel boundaries, with customizable colors.
Fill: Options include a gradient (smooth color transition between bands) or solid color. The fill can also be disabled for greater clarity.
█ FEATURES AND SETTINGS
SMA Length: Determines the moving average period (default: 20). Values of 10–30 are suitable for a wide channel containing price movement, ideal for short-term timeframes. Longer values (e.g., 50–100) create narrower support/resistance or trend-following bands, better suited for higher timeframes.
Band Scaling: Percentage of the average candle height (default: 200%). Adjusts the channel width to match market volatility—smaller values (e.g., 50–100%) for narrower bands, larger values (e.g., 200–300%) for wider channels.
Fill Type: Gradient, solid, or no fill, allowing customization to user preferences.
Colors: Options to change the colors of bands, fill, and signals for better readability.
Signals: Options to enable/disable reversal signals from bands and SMA breakout signals.
█ HOW TO USE
Add the script to your chart in TradingView by clicking "Add to Chart" in the Pine Editor.
Adjust input parameters in the script settings:
SMA Length: Set to 10–30 for a wide channel containing price movement, suitable for scalping or short-term trading. Set above 30 (e.g., 50–100) for narrower support/resistance or trend-following bands.
Band Scaling: Adjust the channel width to market volatility. Smaller values (50–100%) for tighter support/resistance bands, larger values (200–300%) for wider channels containing price movement.
Fill Type and Colors: Choose a gradient for aesthetics or a solid fill for clarity.
Analyze signals:
Reversal Signals: Triangles above (bearish) or below (bullish) candles indicate potential reversal points.
SMA Breakout Signals: Circles above (bearish) or below (bullish) candles indicate trend changes.
Test the indicator on different instruments and timeframes to find optimal settings for your trading style.
█ LIMITATIONS
The indicator may generate false signals in highly volatile or consolidating markets.
On low-liquidity charts (e.g., exotic currency pairs), the bands may be less reliable.
Effectiveness depends on properly matching parameters to the market and timeframe.
EMA Trend Confirmation with Alerts此脚本是基于EMA 200周期 50周期 20周期加以合并并进行改进的一个脚本指标,主要作用是用于观察趋势走向,其中有上升下降和震荡趋势,经过多数测试,此指标适用于短线交易,推荐周期为20或15,大周期和长线交易详见RSI+EMA结合指标
This script is an improved script indicator based on the EMA 200 period, 50 period, and 20 period. Its main function is to observe the trend direction, including up, down, and oscillating trends. After many tests, this indicator is suitable for short-term trading, and the recommended period is 20 or 15. For large-cycle and long-term trading, please refer to the RSI+EMA combination indicator.
9:45am NIFTY TRADINGTime Frame: 15 Minutes | Reference Candle Time: 9:45 AM IST | Valid Trading Window: 3 Hours
📌 Introduction
This document outlines a structured trading strategy for NIFTY & BANKNIFTY Options based on a 15-minute timeframe with a 9:45 AM IST reference candle. The strategy incorporates technical indicators, probability analysis, and strict trading rules to optimize entries and exits.
📊 Core Features
1. Reference Time Trading System
9:45 AM IST Candle acts as the reference for the day.
All signals (Buy/Sell/Reversal) are generated based on price action relative to this candle.
The valid trading window is 3 hours after the reference candle.
2. Signal Generation Logic
Signal Condition
Buy (B) Price breaks above reference candle high with confirmation
Sell (S) Price breaks below reference candle low with confirmation
Reversal (R) Early trend reversal signal (requires strict confirmation)
3. Probability Analysis System
The strategy calculates Win Probability (%) using 4 components:
Component Weight Calculation
Body Win Probability 30% Based on candle body strength (body % of total range)
Volume Win Probability 30% Current volume vs. average volume strength
Trend Win Probability 40% EMA crossover + RSI momentum alignment
Composite Probability - Weighted average of all 3 components
Probability Color Coding:
🟢 Green (High Probability): ≥70%
🟠 Orange (Medium Probability): 50-69%
🔴 Red (Low Probability): <50%
4. Timeframe Enforcement
Strictly 15-minute charts only (no other timeframes allowed).
System auto-disables signals if the wrong timeframe is selected.
📈 Technical Analysis Components
1. EMA System (Trend Analysis)
Short EMA (9) – Fast trend indicator
Middle EMA (20) – Intermediate trend
Long EMA (50) – Long-term trend confirmation
Rules:
Buy Signal: Price > 9 EMA > 20 EMA > 50 EMA (Bullish trend)
Sell Signal: Price < 9 EMA < 20 EMA < 50 EMA (Bearish trend)
2. Multi-Timeframe RSI (Momentum)
5M, 15M, 1H, 4H, Daily RSI values are compared for divergence/confluence.
Overbought (≥70) / Oversold (≤30) conditions help in reversal signals.
3. Volume Analysis
Volume Strength (%) = (Current Volume / Avg. Volume) × 100
Strong Volume (>120% Avg.) confirms breakout/breakdown.
4. Body Percentage (Candle Strength)
Body % = (Close - Open) / (High - Low) × 100
Strong Bullish Candle: Body > 60%
Strong Bearish Candle: Body < 40%
📊 Visual Elements
1. Information Tables
Reference Data Table (9:45 AM Candle High/Low/Close)
RSI Values Table (5M, 15M, 1H, 4H, Daily)
Signal Legend (Buy/Sell/Reversal indicators)
2. Chart Overlays
Reference Lines (9:45 AM High & Low)
EMA Lines (9, 20, 50)
Signal Labels (B, S, R)
3. Color Coding
High Probability (Green)
Medium Probability (Orange)
Low Probability (Red)
⚠️ Important Usage Guidelines
✅ Best Practices:
Trade only within the 3-hour window (9:45 AM - 12:45 PM IST).
Wait for confirmation (closing above/below reference candle).
Use probability score to filter high-confidence trades.
❌ Avoid:
Trading outside the 15-minute timeframe.
Ignoring volume & RSI divergence.
Overtrading – Stick to 1-2 high-probability setups per day.
🎯 Conclusion
This NIFTY Trading Strategy is optimized for 15-minute charts with a 9:45 AM IST reference candle. It combines EMA trends, RSI momentum, volume analysis, and probability scoring to generate high-confidence signals.
🚀 Key Takeaways:
✔ Reference candle defines the day’s bias.
✔ Probability system filters best trades.
✔ Strict 15M timeframe ensures consistency.
Happy Trading! 📈💰
EMA+ATR Band MTF Trend EntryThis is a Multi-Timeframe Trend Trading indicator strategy adapted from Sahil Rohmehtra’s Mentorship programme. The trading decision is made by first accessing the trend in higher timeframe (say Monthly) by using TWO EMAs. If the faster EMA (say 20 period) is above Slower EMA (say 50 period) and the price is above slower EMA then the trend is suitable for buyers. Similarly if faster EMA is below slow EMA and the price is below that then trend is suitable for sellers.
Once we access the trend in the higher timeframe we move to the lower timeframe (say Weekly) and access the 5-period RSI value. If RSI is below 30 then we can prepare for possible buy entry in lower (Daily) timeframe if entry conditions are met in daily timeframe. Similarly sell bias can be initiated when the higher timeframe EMA trend is down, daily RSI is above 70 and sell entry condition is met in daily timeframe. The RSI thresholds can be changed by the user.
Once we identified the RSI bias then wait for the confirmation candle in the lower timeframe (say 1 hour). In the entry timeframe we plot a band of 20 EMA of LOWs ± 1 ATR lines. Here,we wait for a candle to close above the 20 EMA of LOWs + 1 ATR for a buy signal with an increase in On Balance Volume (OBV) value. Similarly for sell signal we should get a candle close below the 20 EMA of LOWs - 1 ATR with corresponding change in OBV. This candle is the signal candle.
Once we get a Buy or Sell signal the corresponding stop loss is the nearest LOW - 1 ATR or HIGH + 1 ATR. The ATR scaling may be changed by the user. Now if another candle closes above the high of the buy signal candle then enter on buy. If the low of the buy signal candle is broken then it is a potential short-term sell entry. Similarly if another candle closes below the sell signal candle then enter short and if there is a close above high of the signal candle then it is a potential buy entry.
Stochastic Ribbon & EMAsHere's a comprehensive description for publishing your indicator:
---
# **Stochastic Ribbon & EMAs**
A clean and powerful trading indicator that combines **Stochastic Support/Resistance levels** with **Essential Moving Averages** for comprehensive market analysis.
## **📊 What It Does**
This indicator provides **7 key reference lines** on your chart:
- **3 Stochastic levels** (20%, 50%, 80%) - Dynamic support/resistance zones
- **4 Essential EMAs** (20, 50, 100, 200) - Trend direction and momentum
## **🎯 Key Features**
### **Stochastic Ribbon (3 Yellow Lines)**
- **80% Line**: Dynamic resistance level - potential selling zone
- **50% Line**: Market equilibrium - trend direction reference
- **20% Line**: Dynamic support level - potential buying zone
- **Default 50-period lookback** for stable, reliable levels
- **All lines in yellow** for clean, consistent visualization
### **Essential EMAs (4 Colored Lines)**
- **20 EMA** (Purple): Short-term trend and entry timing
- **50 EMA** (Dark Cyan): Medium-term trend direction
- **100 EMA** (Rosy Brown): Long-term trend confirmation
- **200 EMA** (Brown): Major trend and institutional levels
## **📈 How to Use**
### **For Support & Resistance:**
- **Above 80% line**: Look for selling opportunities (overbought zone)
- **Between 50-80%**: Bullish bias, pullbacks to 50% line for entries
- **Around 50% line**: Key equilibrium - watch for direction
- **Between 20-50%**: Bearish bias, bounces to 50% line for exits
- **Below 20% line**: Look for buying opportunities (oversold zone)
### **For Trend Analysis:**
- **EMA Stack Order**: Higher timeframe EMAs above lower = uptrend
- **Price above all EMAs**: Strong bullish momentum
- **Price below all EMAs**: Strong bearish momentum
- **EMA as dynamic support/resistance**: Bounces and rejections
### **For Entry Signals:**
- **Confluence zones**: Where Stochastic levels meet EMA levels
- **Breakouts**: Price breaking through multiple levels simultaneously
- **Reversals**: Price rejection at extreme Stochastic levels with EMA confirmation
## **⚙️ Settings**
### **Stochastic Ribbon**
- **Show/Hide**: Toggle the 3 Stochastic lines
- **Length**: Period for high/low calculation (default: 50)
- **Start**: Multiplier for calculation (default: 1)
### **EMAs**
- **Individual toggles**: Show/hide each EMA separately
- **Custom periods**: Adjust each EMA length (defaults: 20, 50, 100, 200)
- **Custom colors**: Personalize each EMA color
## **🚀 Why This Indicator?**
✅ **Clean & Simple**: No cluttered charts - just essential levels
✅ **Multi-Timeframe**: Works on all timeframes from 1m to 1W
✅ **Versatile**: Suitable for scalping, day trading, and swing trading
✅ **Low Lag**: Dynamic levels that adapt to current market conditions
✅ **Proven Components**: Combines two well-established technical concepts
✅ **Customizable**: Adjust all parameters to fit your trading style
## **💡 Pro Tips**
- **Use multiple timeframes**: Check higher timeframe alignment for stronger signals
- **Combine with volume**: Look for volume confirmation at key levels
- **Watch for confluences**: Best signals occur where multiple levels align
- **Respect the 50% line**: Often acts as the most important level for trend direction
## **📋 Technical Details**
- **Version**: Pine Script v5
- **Overlay**: Yes (displays on main price chart)
- **Plots**: 7 total (well within Pine Script limits)
- **Performance**: Optimized for fast loading and smooth operation
---
**Perfect for traders who want clear, actionable levels without chart clutter. Whether you're a beginner learning support/resistance or an experienced trader looking for clean reference points, this indicator delivers exactly what you need.**