Поиск скриптов по запросу "backtest"
Asset Rotation System [InvestorUnknown]Overview
This system creates a comprehensive trend "matrix" by analyzing the performance of six assets against both the US Dollar and each other. The objective is to identify and hold the asset that is currently outperforming all others, thereby focusing on maintaining an investment in the most "optimal" asset at any given time.
- - - Key Features - - -
1. Trend Classification:
The system evaluates the trend for each of the six assets, both individually against USD and in pairs (assetX/assetY), to determine which asset is currently outperforming others.
Utilizes five distinct trend indicators: RSI (50 crossover), CCI, SuperTrend, DMI, and Parabolic SAR.
Users can customize the trend analysis by selecting all indicators or choosing a single one via the "Trend Classification Method" input setting.
2. Backtesting:
Calculates an equity curve for each asset and for the system itself, which assumes holding only the asset deemed optimal at any time.
Customizable start date for backtesting; by default, it begins either 5000 bars ago (the maximum in TradingView) or at the inception of the youngest asset included, whichever is shorter. If the youngest asset's history exceeds 5000 bars, the system uses 5000 bars to prevent errors.
The equity curve is dynamically colored based on the asset held at each point, with this coloring also reflected on the chart via barcolor().
Performance metrics like returns, standard deviation of returns, Sharpe, Sortino, and Omega ratios, along with maximum drawdown, are computed for each asset and the system's equity curve.
3 Alerts:
Supports alerts for when a new, confirmed optimal asset is identified. However, due to TradingView limitations, the specific asset cannot be included in the alert message.
- - - Usage - - -
1. Select Assets/Tickers:
Choose which assets or tickers you want to include in the rotation system. Ensure that all selected tickers are denominated in USD to maintain consistency in analysis.
2. Configure Trend Classification:
Decide on the trend classification method from the available options (RSI, CCI, SuperTrend, DMI, or Parabolic SAR, All) and adjust the settings to your preferences. This customization allows you to tailor the system to different market conditions or your specific trading strategy.
3. Utilize Backtesting for Calibration:
Use the backtesting results, including equity curves and performance metrics, to fine-tune your chosen trend indicators.
Be cautious not to overemphasize performance maximization, as this can lead to overfitting. The goal is to achieve a robust system that performs well across various market conditions, rather than just optimizing for past data.
- - - Parameters - - -
Tickers:
Asset 1: Select the symbol for the first asset.
Asset 2: Select the symbol for the second asset.
Asset 3: Select the symbol for the third asset.
Asset 4: Select the symbol for the fourth asset.
Asset 5: Select the symbol for the fifth asset.
Asset 6: Select the symbol for the sixth asset.
General Settings:
Trend Classification Method: Choose from RSI, CCI, SuperTrend, DMI, PSAR, or "All" to determine how trends are analyzed.
Use Custom Starting Date for Backtest: Toggle to use a custom date for beginning the backtest.
Custom Starting Date: Set the custom start date for backtesting.
Plot Perf. Metrics Table: Option to display performance metrics in a table on the chart.
RSI (Relative Strength Index):
RSI Source: Choose the price data source for RSI calculation.
RSI Length: Set the period for the RSI calculation.
CCI (Commodity Channel Index):
CCI Source: Select the price data source for CCI calculation.
CCI Length: Determine the period for the CCI.
SuperTrend:
SuperTrend Factor: Adjust the sensitivity of the SuperTrend indicator.
SuperTrend Length: Set the period for the SuperTrend calculation.
DMI (Directional Movement Index):
DMI Length: Define the period for DMI calculations.
Parabolic SAR:
PSAR Start: Initial acceleration factor for the Parabolic SAR.
PSAR Increment: Increment value for the acceleration factor.
PSAR Max Value: Maximum value the acceleration factor can reach.
Notes/Recommendations:
While this system is operational, it's important to recognize that it relies on "basic" indicators, which may not be ideal for generating trading signals on their own. I strongly suggest that users delve into the code to grasp the underlying logic of the system. Consider customizing it by integrating more sophisticated and higher-quality trend-following indicators to enhance its performance and reliability.
Disclaimer:
This system's backtest results are historical and do not predict future performance. Use for educational purposes only; not investment advice.
Smart DCA Strategy (Public)INSPIRATION
While Dollar Cost Averaging (DCA) is a popular and stress-free investment approach, I noticed an opportunity for enhancement. Standard DCA involves buying consistently, regardless of market conditions, which can sometimes mean missing out on optimal investment opportunities. This led me to develop the Smart DCA Strategy – a 'set and forget' method like traditional DCA, but with an intelligent twist to boost its effectiveness.
The goal was to build something more profitable than a standard DCA strategy so it was equally important that this indicator could backtest its own results in an A/B test manner against the regular DCA strategy.
WHY IS IT SMART?
The key to this strategy is its dynamic approach: buying aggressively when the market shows signs of being oversold, and sitting on the sidelines when it's not. This approach aims to optimize entry points, enhancing the potential for better returns while maintaining the simplicity and low stress of DCA.
WHAT THIS STRATEGY IS, AND IS NOT
This is an investment style strategy. It is designed to improve upon the common standard DCA investment strategy. It is therefore NOT a day trading strategy. Feel free to experiment with various timeframes, but it was designed to be used on a daily timeframe and that's how I recommend it to be used.
You may also go months without any buy signals during bull markets, but remember that is exactly the point of the strategy - to keep your buying power on the sidelines until the markets have significantly pulled back. You need to be patient and trust in the historical backtesting you have performed.
HOW IT WORKS
The Smart DCA Strategy leverages a creative approach to using Moving Averages to identify the most opportune moments to buy. A trigger occurs when a daily candle, in its entirety including the high wick, closes below the threshold line or box plotted on the chart. The indicator is designed to facilitate both backtesting and live trading.
HOW TO USE
Settings:
The input parameters for tuning have been intentionally simplified in an effort to prevent users falling into the overfitting trap.
The main control is the Buying strictness scale setting. Setting this to a lower value will provide more buying days (less strict) while higher values mean less buying days (more strict). In my testing I've found level 9 to provide good all round results.
Validation days is a setting to prevent triggering entries until the asset has spent a given number of days (candles) in the overbought state. Increasing this makes entries stricter. I've found 0 to give the best results across most assets.
In the backtest settings you can also configure how much to buy for each day an entry triggers. Blind buy size is the amount you would buy every day in a standard DCA strategy. Smart buy size is the amount you would buy each day a Smart DCA entry is triggered.
You can also experiment with backtesting your strategy over different historical datasets by using the Start date and End date settings. The results table will not calculate for any trades outside what you've set in the date range settings.
Backtesting:
When backtesting you should use the results table on the top right to tune and optimise the results of your strategy. As with all backtests, be careful to avoid overfitting the parameters. It's better to have a setup which works well across many currencies and historical periods than a setup which is excellent on one dataset but bad on most others. This gives a much higher probability that it will be effective when you move to live trading.
The results table provides a clear visual representation as to which strategy, standard or smart, is more profitable for the given dataset. You will notice the columns are dynamically coloured red and green. Their colour changes based on which strategy is more profitable in the A/B style backtest - green wins, red loses. The key metrics to focus on are GOA (Gain on Account) and Avg Cost.
Live Trading:
After you've finished backtesting you can proceed with configuring your alerts for live trading.
But first, you need to estimate the amount you should buy on each Smart DCA entry. We can use the Total invested row in the results table to calculate this. Assuming we're looking to trade on
BTCUSD
Decide how much USD you would spend each day to buy BTC if you were using a standard DCA strategy. Lets say that is $5 per day
Enter that USD amount in the Blind buy size settings box
Check the Blind Buy column in the results table. If we set the backtest date range to the last 10 years, we would expect the amount spent on blind buys over 10 years to be $18,250 given $5 each day
Next we need to tweak the value of the Smart buy size parameter in setting to get it as close as we can to the Total Invested amount for Blind Buy
By following this approach it means we will invest roughly the same amount into our Smart DCA strategy as we would have into a standard DCA strategy over any given time period.
After you have calculated the Smart buy size, you can go ahead and set up alerts on Smart DCA buy triggers.
BOT AUTOMATION
In an effort to maintain the 'set and forget' stress-free benefits of a standard DCA strategy, I have set my personal Smart DCA Strategy up to be automated. The bot runs on AWS and I have a fully functional project for the bot on my GitHub account. Just reach out if you would like me to point you towards it. You can also hook this into any other 3rd party trade automation system of your choice using the pre-configured alerts within the indicator.
PLANNED FUTURE DEVELOPMENTS
Currently this is purely an accumulation strategy. It does not have any sell signals right now but I have ideas on how I will build upon it to incorporate an algorithm for selling. The strategy should gradually offload profits in bull markets which generates more USD which gives more buying power to rinse and repeat the same process in the next cycle only with a bigger starting capital. Watch this space!
MARKETS
Crypto:
This strategy has been specifically built to work on the crypto markets. It has been developed, backtested and tuned against crypto markets and I personally only run it on crypto markets to accumulate more of the coins I believe in for the long term. In the section below I will provide some backtest results from some of the top crypto assets.
Stocks:
I've found it is generally more profitable than a standard DCA strategy on the majority of stocks, however the results proved to be a lot more impressive on crypto. This is mainly due to the volatility and cycles found in crypto markets. The strategy makes its profits from capitalising on pullbacks in price. Good stocks on the other hand tend to move up and to the right with less significant pullbacks, therefore giving this strategy less opportunity to flourish.
Forex:
As this is an accumulation style investment strategy, I do not recommend that you use it to trade Forex.
For more info about this strategy including backtest results, please see the full description on the invite only version of this strategy named "Smart DCA Strategy"
Live Market - Performance MonitorLive Market — Performance Monitor
Study material (no code) — step-by-step training guide for learners
________________________________________
1) What this tool is — short overview
This indicator is a live market performance monitor designed for learning. It scans price, volume and volatility, detects order blocks and trendline events, applies filters (volume & ATR), generates trade signals (BUY/SELL), creates simple TP/SL trade management, and renders a compact dashboard summarizing market state, risk and performance metrics.
Use it to learn how multi-factor signals are constructed, how Greeks-style sensitivity is replaced by volatility/ATR reasoning, and how a live dashboard helps monitor trade quality.
________________________________________
2) Quick start — how a learner uses it (step-by-step)
1. Add the indicator to a chart (any ticker / timeframe).
2. Open inputs and review the main groups: Order Block, Trendline, Signal Filters, Display.
3. Start with defaults (OB periods ≈ 7, ATR multiplier 0.5, volume threshold 1.2) and observe the dashboard on the last bar.
4. Walk the chart back in time (use the last-bar update behavior) and watch how signals, order blocks, trendlines, and the performance counters change.
5. Run the hands-on labs below to build intuition.
________________________________________
3) Main configurable inputs (what you can tweak)
• Order Block Relevant Periods (default ~7): number of consecutive candles used to define an order block.
• Min. Percent Move for Valid OB (threshold): minimum percent move required for a valid order block.
• Number of OB Channels: how many past order block lines to keep visible.
• Trendline Period (tl_period): pivot lookback for detecting highs/lows used to draw trendlines.
• Use Wicks for Trendlines: whether pivot uses wicks or body.
• Extension Bars: how far trendlines are projected forward.
• Use Volume Filter + Volume Threshold Multiplier (e.g., 1.2): requires volume to be greater than multiplier × average volume.
• Use ATR Filter + ATR Multiplier: require bar range > ATR × multiplier to filter noise.
• Show Targets / Table settings / Colors for visualization.
________________________________________
4) Core building blocks — what the script computes (plain language)
Price & trend:
• Spot / LTP: current close price.
• EMA 9 / 21 / 50: fast, medium, slow moving averages to define short/medium trend.
o trend_bullish: EMA9 > EMA21 > EMA50
o trend_bearish: EMA9 < EMA21 < EMA50
o trend_neutral: otherwise
Volatility & noise:
• ATR (14): average true range used for dynamic target and filter sizing.
• dynamic_zone = ATR × atr_multiplier: minimum bar range required for meaningful move.
• Annualized volatility: stdev of price changes × sqrt(252) × 100 — used to classify volatility (HIGH/MEDIUM/LOW).
Momentum & oscillators:
• RSI 14: overbought/oversold indicator (thresholds 70/30).
• MACD: EMA(12)-EMA(26) and a 9-period signal line; histogram used for momentum direction and strength.
• Momentum (ta.mom 10): raw momentum over 10 bars.
Mean reversion / band context:
• Bollinger Bands (20, 2σ): upper, mid, lower.
o price_position measures where price sits inside the band range as 0–100.
Volume metrics:
• avg_volume = SMA(volume, 20) and volume_spike = volume > avg_volume × volume_threshold
o volume_ratio = volume / avg_volume
Support & Resistance:
• support_level = lowest low over 20 bars
• resistance_level = highest high over 20 bars
• current_position = percent of price between support & resistance (0–100)
________________________________________
5) Order Block detection — concept & logic
What it tries to find: a bar (the base) followed by N candles in the opposite direction (a classical order block setup), with a minimum % move to qualify. The script records the high/low of the base candle, averages them, and plots those levels as OB channels.
How learners should think about it (conceptual):
1. An order block is a signature area where institutions (theory) left liquidity — often seen as a large bar followed by a sequence of directional candles.
2. This indicator uses a configurable number of subsequent candles to confirm that the pattern exists.
3. When found, it stores and displays the base candle’s high/low area so students can see how price later reacts to those zones.
Implementation note for learners: the tool keeps a limited history of OB lines (ob_channels). When new OBs exceed the count, the oldest lines are removed — good practice to avoid clutter.
________________________________________
6) Trendline detection — idea & interpretation
• The script finds pivot highs and lows using a symmetric lookback (tl_period and half that as right/left).
• It then computes a trendline slope from successive pivots and projects the line forward (extension_bars).
• Break detection: Resistance break = close crosses above the projected resistance line; Support break = close crosses below projected support.
Learning tip: trendlines here are computed from pivot points and time. Watch how changing tl_period (bigger = smoother, fewer pivots) alters the trendlines and break signals.
________________________________________
7) Signal generation & filters — step-by-step
1. Primary triggers:
o Bullish trigger: order block bullish OR resistance trendline break.
o Bearish trigger: bearish order block OR support trendline break.
2. Filters applied (both must pass unless disabled):
o Volume filter: volume must be > avg_volume × volume_threshold.
o ATR filter: bar range (high-low) must exceed ATR × atr_multiplier.
o Not in an existing trade: new trades only start if trade_active is false.
3. Trend confirmation:
o The primary trigger is only confirmed if trend is bullish/neutral for buys or bearish/neutral for sells (EMA alignment).
4. Result:
o When confirmed, a long or short trade is activated with TP/SL calculated from ATR multiples.
________________________________________
8) Trade management — what the tool does after a signal
• Entry management: the script marks a trade as trade_active and sets long_trade or short_trade flags.
• TP & SL rules:
o Long: TP = high + 2×ATR ; SL = low − 1×ATR
o Short: TP = low − 2×ATR ; SL = high + 1×ATR
• Monitoring & exit:
o A trade closes when price reaches TP or SL.
o When TP/SL hit, the indicator updates win_count and total_pnl using a very simple calculation (difference between TP/SL and previous close).
o Visual lines/labels are drawn for TP and updated as the trade runs.
Important learner notes:
• The script does not store a true entry price (it uses close in its P&L math), so PnL is an approximation — treat this as a learning proxy, not a position accounting system.
• There’s no sizing, slippage, or fee accounted — students must manually factor these when translating to real trades.
• This indicator is not a backtesting strategy; strategy.* functions would be needed for rigorous backtest results.
________________________________________
9) Signal strength & helper utilities
• Signal strength is a composite score (0–100) made up of four signals worth 25 points each:
1. RSI extreme (overbought/oversold) → 25
2. Volume spike → 25
3. MACD histogram magnitude increasing → 25
4. Trend existence (bull or bear) → 25
• Progress bars (text glyphs) are used to visually show RSI and signal strength on the table.
Learning point: composite scoring is a way to combine orthogonal signals — study how changing weights changes outcomes.
________________________________________
10) Dashboard — how to read each section (walkthrough)
The dashboard is split into sections; here's how to interpret them:
1. Market Overview
o LTP / Change%: immediate price & daily % change.
2. RSI & MACD
o RSI value plus progress bar (overbought 70 / oversold 30).
o MACD histogram sign indicates bullish/bearish momentum.
3. Volume Analysis
o Volume ratio (current / average) and whether there’s a spike.
4. Order Block Status
o Buy OB / Sell OB: the average base price of detected order blocks or “No Signal.”
5. Signal Status
o 🔼 BUY or 🔽 SELL if confirmed, or ⚪ WAIT.
o No-trade vs Active indicator summarizing market readiness.
6. Trend Analysis
o Trend direction (from EMAs), market sentiment score (composite), volatility level and band/position metrics.
7. Performance
o Win Rate = wins / signals (percentage)
o Total PnL = cumulative PnL (approximate)
o Bull / Bear Volume = accumulated volumes attributable to signals
8. Support & Resistance
o 20-bar highest/lowest — use as nearby reference points.
9. Risk & R:R
o Risk Level from ATR/price as a percent.
o R:R Ratio computed from TP/SL if a trade is active.
10. Signal Strength & Active Trade Status
• Numeric strength + progress bar and whether a trade is currently active with TP/SL display.
________________________________________
11) Alerts — what will notify you
The indicator includes pre-built alert triggers for:
• Bullish confirmed signal
• Bearish confirmed signal
• TP hit (long/short)
• SL hit (long/short)
• No-trade zone
• High signal strength (score > 75%)
Training use: enable alerts during a replay session to be notified when the indicator would have signalled.
________________________________________
12) Labs — hands-on exercises for learners (step-by-step)
Lab A — Order Block recognition
1. Pick a 15–30 minute timeframe on a liquid ticker.
2. Use default OB periods (7). Mark each time the dashboard shows a Buy/Sell OB.
3. Manually inspect the chart at the base candle and the following sequence — draw the OB zone by hand and watch later price reactions to it.
4. Repeat with OB periods 5 and 10; note stability vs noise.
Lab B — Trendline break confirmation
1. Increase trendline period (e.g., 20), watch trendlines form from pivots.
2. When a resistance break is flagged, compare with MACD & volume: was momentum aligned?
3. Note false breaks vs confirmed moves — change extension_bars to see projection effects.
Lab C — Filter sensitivity
1. Toggle Use Volume Filter off, and record the number and quality of signals in a 2-day window.
2. Re-enable volume filter and change threshold from 1.2 → 1.6; note how many low-quality signals are filtered out.
Lab D — Trade management simulation
1. For each signalled trade, record the time, close entry approximation, TP, SL, and eventual hit/miss.
2. Compute actual PnL if you had entered at the open of the next bar to compare with the script’s PnL math.
3. Tabulate win rate and average R:R.
Lab E — Performance review & improvement
1. Build a spreadsheet of signals over 30–90 periods with columns: Date, Signal type, Entry price (real), TP, SL, Exit, PnL, Notes.
2. Analyze which filters or indicators contributed most to winners vs losers and adjust weights.
________________________________________
13) Common pitfalls, assumptions & implementation notes (things to watch)
• P&L simplification: total_pnl uses close as a proxy entry price. Real entry/exit prices and slippage are not recorded — so PnL is approximate.
• No position sizing or money management: the script doesn’t compute position size from equity or risk percent.
• Signal confirmation logic: composite "signal_strength" is a simple 4×25 point scheme — explore different weights or additional signals.
• Order block detection nuance: the script defines the base candle and checks the subsequent sequence. Be sure to verify whether the intended candle direction (base being bullish vs bearish) aligns with academic/your trading definition — read the code carefully and test.
• Trendline slope over time: slope is computed using timestamps; small differences may make lines sensitive on very short timeframes — using bar_index differences is usually more stable.
• Not a true backtester: to evaluate performance statistically you must transform the logic into a strategy script that places hypothetical orders and records exact entry/exit prices.
________________________________________
14) Suggested improvements for advanced learners
• Record true entry price & timestamp for accurate PnL.
• Add position sizing: risk % per trade using SL distance and account size.
• Convert to strategy. (Pine Strategy)* to run formal backtests with equity curves, drawdowns, and metrics (Sharpe, Sortino).
• Log trades to an external spreadsheet (via alerts + webhook) for offline analysis.
• Add statistics: average win/loss, expectancy, max drawdown.
• Add additional filters: news time blackout, market session filters, multi-timeframe confirmation.
• Improve OB detection: combine wick/body, volume spike at base bar, and liquidity sweep detection.
________________________________________
15) Glossary — quick definitions
• ATR (Average True Range): measure of typical range; used to size targets and stops.
• EMA (Exponential Moving Average): trend smoothing giving more weight to recent prices.
• RSI (Relative Strength Index): momentum oscillator; >70 overbought, <30 oversold.
• MACD: momentum oscillator using difference of two EMAs.
• Bollinger Bands: volatility bands around SMA.
• Order Block: a base candle area with subsequent confirmation candles; a zone of institutional interest (learning model).
• Pivot High/Low: local turning point defined by candles on both sides.
• Signal Strength: combined score from multiple indicators.
• Win Rate: proportion of signals that hit TP vs total signals.
• R:R (Risk:Reward): ratio of potential reward (TP distance) to risk (entry to SL).
________________________________________
16) Limitations & assumptions (be explicit)
• This is an indicator for learning — not a trading robot or broker connection.
• No slippage, fees, commissions or tie-in to real orders are considered.
• The logic is heuristic (rule-of-thumb), not a guarantee of performance.
• Results are sensitive to timeframe, market liquidity, and parameter choices.
________________________________________
17) Practical classroom / study plan (4 sessions)
• Session 1 — Foundations: Understand EMAs, ATR, RSI, MACD, Bollinger Bands. Run the indicator and watch how these numbers change on a single day.
• Session 2 — Zones & Filters: Study order blocks and trendlines. Test volume & ATR filters and note changes in false signals.
• Session 3 — Simulated trading: Manually track 20 signals, compute real PnL and compare to the dashboard.
• Session 4 — Improvement plan: Propose changes (e.g., better PnL accounting, alternative OB rule) and test their impact.
________________________________________
18) Quick reference checklist for each signal
1. Was an order block or trendline break detected? (primary trigger)
2. Did volume meet threshold? (filter)
3. Did ATR filter (bar size) show a real move? (filter)
4. Was trend aligned (EMA 9/21/50)? (confirmation)
5. Signal confirmed → mark entry approximation, TP, SL.
6. Monitor dashboard (Signal Strength, Volatility, No-trade zone, R:R).
7. After exit, log real entry/exit, compute actual PnL, update spreadsheet.
________________________________________
19) Educational caveat & final note
This tool is built for training and analysis: it helps you see how common technical building blocks combine into trade ideas, but it is not a trading recommendation. Use it to develop judgment, to test hypotheses, and to design robust systems with proper backtesting and risk control before risking capital.
________________________________________
20) Disclaimer (must include)
Training & Educational Only — This material and the indicator are provided for educational purposes only. Nothing here is investment advice or a solicitation to buy or sell financial instruments. Past simulated or historical performance does not predict future results. Always perform full backtesting and risk management, and consider seeking advice from a qualified financial professional before trading with real capital.
________________________________________
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.
Rifle UnifiedThis script is designed for use on 30-second charts of Dow Jones-related symbols (YM, MYM, US30). It provides automated buy and sell signals using a combination of price action, RSI (Relative Strength Index), and volume analysis. The script is intended for both live trading signals and backtesting, with configurable risk management and debugging features.
Core Functionality
1. Signal Generation Logic
Trigger: The algorithm looks for a sharp price move (drop or rise) of a user-defined threshold (default: 80 points) within a specified lookback window (default: 20 minutes).
Levels: It monitors for price drops below specific numerical levels ending in 23, 43, or 73 (e.g., 42223, 42273).
RSI Condition: When price falls below one of these levels and the RSI is below 30, the setup is considered active.
Buy Signal: A buy is triggered if, after setup:
Price rises back above the level,
The RSI rate of change (ROC) indicates exhaustion of the drop,
The current bar shows positive momentum.
2. Trade Management
Stop Loss & Take Profit: Configurable fixed or trailing stop loss and take profit levels are plotted and managed automatically.
Exit Signals: The script signals exit based on price action relative to these risk management levels.
3. Filters & Enhancements
Parabolic Move Filter: Prevents entries during extreme price moves.
Dead Cat Bounce Filter: Avoids false signals after sharp reversals.
Volume Filter: Optionally requires volume conditions for trade entries (especially for shorts).
Multiple Confirmation Layers : Includes checks for 5-minute RSI, momentum, and price retracement.
User Inputs & Customization
Trade Direction: Toggle between LONG and SHORT signal generation.
Trigger Settings: Adjust thresholds for price moves, lookback windows, RSI ROC, and volume requirements.
Trade Settings: Set take profit, stop loss, and trailing stop behavior.
Debug & Visualization: Enable or disable various plots, labels, and debug tables for in-depth analysis.
Backtesting: Integrated backtester with summary and detailed statistics tables.
Technical Features
Uses External Libraries: Relies on RifleShooterLib for core logic and BackTestLib for backtesting and statistics.
Multi-timeframe Analysis: Incorporates both 30-second and 5-minute RSI calculations.
Chart Annotations: Plots entry/exit points, risk levels, and debug information directly on the chart.
Alert Conditions: Built-in alert triggers for key events (initial move, stall, entry).
Intended Use
Markets: Dow Jones symbols (YM, MYM, US30, or US30 CFD).
Timeframe: 30-second chart.
Purpose: Automated signal generation for discretionary or algorithmic trading, with robust risk management and backtesting support.
Notable Customization & Extension Points
Momentum Calculation: Plans to replace the current momentum measure with "sqz momentum".
Displacement Logic: Future update to use "FVG concept" for displacement.
High-Contrast RSI: Optional visual enhancements for RSI extremes.
Time-based Stop: Consideration for adding a time-based stop mechanism.
This script is highly modular, with extensive user controls, and is suitable for both live trading and historical analysis of Dow Jones index movements
Market Regime# MARKET REGIME IDENTIFICATION & TRADING SYSTEM
## Complete User Guide
---
## 📋 TABLE OF CONTENTS
1. (#overview)
2. (#regimes)
3. (#indicator-usage)
4. (#entry-signals)
5. (#exit-signals)
6. (#regime-strategies)
7. (#confluence)
8. (#backtesting)
9. (#optimization)
10. (#examples)
---
## OVERVIEW
### What This System Does
This is a **complete market regime identification and trading system** that:
1. **Identifies 6 distinct market regimes** automatically
2. **Adapts trading tactics** to each regime
3. **Provides high-probability entry signals** with confluence scoring
4. **Shows optimal exit points** for each trade
5. **Can be backtested** to validate performance
### Two Components Provided
1. **Indicator** (`market_regime_indicator.pine`)
- Visual regime identification
- Entry/exit signals on chart
- Dynamic support/resistance
- Info tables with live data
- Use for manual trading
2. **Strategy** (`market_regime_strategy.pine`)
- Fully automated backtestable version
- Same logic as indicator
- Position sizing and risk management
- Performance metrics
- Use for backtesting and automation
---
## THE 6 MARKET REGIMES
### 1. 🟢 BULL TRENDING
**Characteristics:**
- Strong uptrend
- Price above SMA50 and SMA200
- ADX > 25 (strong trend)
- Higher highs and higher lows
- DI+ > DI- (bullish momentum)
**What It Means:**
- Market has clear upward direction
- Buyers in control
- Pullbacks are buying opportunities
- Strongest regime for long positions
**How to Trade:**
- ✅ **BUY dips to EMA20 or SMA20**
- ✅ Enter when RSI < 60 on pullback
- ✅ Hold through minor corrections
- ❌ Don't short against the trend
- ❌ Don't sell too early
**Expected Behavior:**
- Pullbacks are shallow (5-10%)
- Bounces are strong
- Support at moving averages holds
- Volume increases on rallies
---
### 2. 🔴 BEAR TRENDING
**Characteristics:**
- Strong downtrend
- Price below SMA50 and SMA200
- ADX > 25 (strong trend)
- Lower highs and lower lows
- DI- > DI+ (bearish momentum)
**What It Means:**
- Market has clear downward direction
- Sellers in control
- Rallies are selling opportunities
- Strongest regime for short positions
**How to Trade:**
- ✅ **SELL rallies to EMA20 or SMA20**
- ✅ Enter when RSI > 40 on bounce
- ✅ Hold through minor bounces
- ❌ Don't buy against the trend
- ❌ Don't cover shorts too early
**Expected Behavior:**
- Rallies are weak (5-10%)
- Selloffs are strong
- Resistance at moving averages holds
- Volume increases on declines
---
### 3. 🔵 BULL RANGING
**Characteristics:**
- Bullish bias but consolidating
- Price near or above SMA50
- ADX < 20 (weak trend)
- Trading in range
- Choppy price action
**What It Means:**
- Uptrend is pausing
- Accumulation phase
- Support and resistance zones clear
- Lower volatility
**How to Trade:**
- ✅ **BUY at support zone**
- ✅ Enter when RSI < 40
- ✅ Take profits at resistance
- ⚠️ Smaller position sizes
- ⚠️ Tighter stops
**Expected Behavior:**
- Range-bound oscillations
- Support bounces repeatedly
- Resistance rejections common
- Eventually breaks higher (usually)
---
### 4. 🟠 BEAR RANGING
**Characteristics:**
- Bearish bias but consolidating
- Price near or below SMA50
- ADX < 20 (weak trend)
- Trading in range
- Choppy price action
**What It Means:**
- Downtrend is pausing
- Distribution phase
- Support and resistance zones clear
- Lower volatility
**How to Trade:**
- ✅ **SELL at resistance zone**
- ✅ Enter when RSI > 60
- ✅ Take profits at support
- ⚠️ Smaller position sizes
- ⚠️ Tighter stops
**Expected Behavior:**
- Range-bound oscillations
- Resistance holds repeatedly
- Support bounces are weak
- Eventually breaks lower (usually)
---
### 5. ⚪ CONSOLIDATION
**Characteristics:**
- No clear direction
- Range compression
- Very low ADX (< 15 often)
- Price inside tight range
- Neutral sentiment
**What It Means:**
- Market is coiling
- Building energy for next move
- Indecision between buyers/sellers
- Calm before the storm
**How to Trade:**
- ✅ **WAIT for breakout direction**
- ✅ Enter on high-volume breakout
- ✅ Direction becomes clear
- ❌ Don't trade inside the range
- ❌ Avoid choppy scalping
**Expected Behavior:**
- Narrow range
- Low volume
- False breakouts possible
- Explosive move when it breaks
---
### 6. 🟣 CHAOS (High Volatility)
**Characteristics:**
- Extreme volatility
- No clear direction
- Erratic price swings
- ATR > 2x average
- Unpredictable
**What It Means:**
- Market panic or euphoria
- News-driven moves
- Emotion dominates logic
- Highest risk environment
**How to Trade:**
- ❌ **STAY OUT!**
- ❌ No positions
- ❌ Wait for stability
- ✅ Protect existing positions
- ✅ Reduce risk
**Expected Behavior:**
- Large intraday swings
- Gaps up/down
- Stop hunts
- Whipsaws
- Eventually calms down
---
## INDICATOR USAGE
### Visual Elements
#### 1. Background Colors
- **Light Green** = Bull Trending (go long)
- **Light Red** = Bear Trending (go short)
- **Light Teal** = Bull Ranging (buy dips)
- **Light Orange** = Bear Ranging (sell rallies)
- **Light Gray** = Consolidation (wait)
- **Purple** = Chaos (stay out!)
#### 2. Regime Labels
- Appear when regime changes
- Show new regime name
- Positioned at highs (bullish) or lows (bearish)
#### 3. Entry Signals
- **Green "LONG"** labels = Buy here
- **Red "SHORT"** labels = Sell here
- Number shows confluence score (X/5 signals)
- Hover for details (stop, target, RSI, etc.)
#### 4. Exit Signals
- **Orange "EXIT LONG"** = Close long position
- **Orange "EXIT SHORT"** = Close short position
- Shows exit reason in tooltip
#### 5. Support/Resistance Lines
- **Green line** = Dynamic support (buy zone)
- **Red line** = Dynamic resistance (sell zone)
- Adapts to regime automatically
#### 6. Moving Averages
- **Blue** = SMA 20 (short-term trend)
- **Orange** = SMA 50 (medium-term trend)
- **Purple** = SMA 200 (long-term trend)
### Information Tables
#### Top Right Table (Main Info)
Shows real-time market conditions:
- **Current Regime** - What regime we're in
- **Bias** - Long, Short, Breakout, or Stay Out
- **ADX** - Trend strength (>25 = strong)
- **Trend** - Strong, Moderate, or Weak
- **Volatility** - High or Normal
- **Vol Ratio** - Current vs average volatility
- **RSI** - Momentum (>70 overbought, <30 oversold)
- **vs SMA50/200** - Price position relative to MAs
- **Support/Resistance** - Exact price levels
- **Long/Short Signals** - Confluence scores (X/5)
#### Bottom Right Table (Regime Guide)
Quick reference for each regime:
- What action to take
- What strategy to use
- Color-coded for quick identification
---
## ENTRY SIGNALS EXPLAINED
### Confluence Scoring System (5 Factors)
Each entry signal is scored 0-5 based on how many factors align:
#### For LONG Entries:
1. ✅ **Regime Alignment** - In Bull Trending or Bull Ranging
2. ✅ **RSI Pullback** - RSI between 35-50 (not overbought)
3. ✅ **Near Support** - Price within 2% of dynamic support
4. ✅ **MACD Turning Up** - Momentum shifting bullish
5. ✅ **Volume Confirmation** - Above average volume
#### For SHORT Entries:
1. ✅ **Regime Alignment** - In Bear Trending or Bear Ranging
2. ✅ **RSI Rejection** - RSI between 50-65 (not oversold)
3. ✅ **Near Resistance** - Price within 2% of dynamic resistance
4. ✅ **MACD Turning Down** - Momentum shifting bearish
5. ✅ **Volume Confirmation** - Above average volume
### Confluence Requirements
**Minimum Confluence** (default = 2):
- 2/5 = Entry signal triggered
- 3/5 = Good signal
- 4/5 = Strong signal
- 5/5 = Excellent signal (rare)
**Higher confluence = Higher probability = Better trades**
### Specific Entry Patterns
#### 1. Bull Trending Entry
```
Requirements:
- Regime = Bull Trending
- Price pulls back to EMA20
- Close above EMA20 (bounce)
- Up candle (close > open)
- RSI < 60
- Confluence ≥ 2
```
#### 2. Bear Trending Entry
```
Requirements:
- Regime = Bear Trending
- Price rallies to EMA20
- Close below EMA20 (rejection)
- Down candle (close < open)
- RSI > 40
- Confluence ≥ 2
```
#### 3. Bull Ranging Entry
```
Requirements:
- Regime = Bull Ranging
- RSI < 40 (oversold)
- Price at or below support
- Up candle (reversal)
- Confluence ≥ 1 (more lenient)
```
#### 4. Bear Ranging Entry
```
Requirements:
- Regime = Bear Ranging
- RSI > 60 (overbought)
- Price at or above resistance
- Down candle (rejection)
- Confluence ≥ 1 (more lenient)
```
#### 5. Consolidation Breakout
```
Requirements:
- Regime = Consolidation
- Price breaks above/below range
- Volume > 1.5x average (explosive)
- Strong directional candle
```
---
## EXIT SIGNALS EXPLAINED
### Three Types of Exits
#### 1. Regime Change Exits (Automatic)
- **Long Exit**: Regime changes to Bear Trending or Chaos
- **Short Exit**: Regime changes to Bull Trending or Chaos
- **Reason**: Market character changed, strategy no longer valid
#### 2. Support/Resistance Break Exits
- **Long Exit**: Price breaks below support by 2%
- **Short Exit**: Price breaks above resistance by 2%
- **Reason**: Key level violated, trend may be reversing
#### 3. Momentum Exits
- **Long Exit**: RSI > 70 (overbought) AND down candle
- **Short Exit**: RSI < 30 (oversold) AND up candle
- **Reason**: Overextension, take profits
### Stop Loss & Take Profit
**Stop Loss** (Automatic in strategy):
- Placed at Entry - (ATR × 2)
- Adapts to volatility
- Protected from whipsaws
- Typically 2-4% for stocks, 5-10% for crypto
**Take Profit** (Automatic in strategy):
- Placed at Entry + (Stop Distance × R:R Ratio)
- Default 2.5:1 reward:risk
- Example: $2 risk = $5 reward target
- Allows winners to run
---
## TRADING EACH REGIME
### BULL TRENDING - Most Profitable Long Environment
**Strategy: Buy Every Dip**
**Entry Rules:**
1. Wait for pullback to EMA20 or SMA20
2. Look for RSI < 60
3. Enter when candle closes above MA
4. Confluence should be 2+
**Stop Loss:**
- Below the recent swing low
- Or 2 × ATR below entry
**Take Profit:**
- At previous high
- Or 2.5:1 R:R minimum
**Position Size:**
- Can use full size (2% risk)
- High win rate regime
**Example Trade:**
```
Price: $100, pulls back to $98 (EMA20)
Entry: $98.50 (close above EMA)
Stop: $96.50 (2 ATR)
Target: $103.50 (2.5:1)
Risk: $2, Reward: $5
```
---
### BEAR TRENDING - Most Profitable Short Environment
**Strategy: Sell Every Rally**
**Entry Rules:**
1. Wait for bounce to EMA20 or SMA20
2. Look for RSI > 40
3. Enter when candle closes below MA
4. Confluence should be 2+
**Stop Loss:**
- Above the recent swing high
- Or 2 × ATR above entry
**Take Profit:**
- At previous low
- Or 2.5:1 R:R minimum
**Position Size:**
- Can use full size (2% risk)
- High win rate regime
**Example Trade:**
```
Price: $100, rallies to $102 (EMA20)
Entry: $101.50 (close below EMA)
Stop: $103.50 (2 ATR)
Target: $96.50 (2.5:1)
Risk: $2, Reward: $5
```
---
### BULL RANGING - Buy Low, Sell High
**Strategy: Range Trading (Long Bias)**
**Entry Rules:**
1. Wait for price at support zone
2. Look for RSI < 40
3. Enter on reversal candle
4. Confluence should be 1-2+
**Stop Loss:**
- Below support zone
- Tighter than trending (1.5 ATR)
**Take Profit:**
- At resistance zone
- Don't hold through resistance
**Position Size:**
- Reduce to 1-1.5% risk
- Lower win rate than trending
**Example Trade:**
```
Range: $95-$105
Entry: $96 (at support, RSI 35)
Stop: $94 (below support)
Target: $104 (at resistance)
Risk: $2, Reward: $8 (4:1)
```
---
### BEAR RANGING - Sell High, Buy Low
**Strategy: Range Trading (Short Bias)**
**Entry Rules:**
1. Wait for price at resistance zone
2. Look for RSI > 60
3. Enter on rejection candle
4. Confluence should be 1-2+
**Stop Loss:**
- Above resistance zone
- Tighter than trending (1.5 ATR)
**Take Profit:**
- At support zone
- Don't hold through support
**Position Size:**
- Reduce to 1-1.5% risk
- Lower win rate than trending
**Example Trade:**
```
Range: $95-$105
Entry: $104 (at resistance, RSI 65)
Stop: $106 (above resistance)
Target: $96 (at support)
Risk: $2, Reward: $8 (4:1)
```
---
### CONSOLIDATION - Wait for Breakout
**Strategy: Breakout Trading**
**Entry Rules:**
1. Identify consolidation range
2. Wait for VOLUME SURGE (1.5x+ avg)
3. Enter on close outside range
4. Direction must be clear
**Stop Loss:**
- Opposite side of range
- Or 2 ATR
**Take Profit:**
- Measure range height, project it
- Example: $10 range = $10 move expected
**Position Size:**
- Reduce to 1% risk
- 50% false breakout rate
**Example Trade:**
```
Consolidation: $98-$102 (4-point range)
Breakout: $102.50 (high volume)
Entry: $103
Stop: $100 (back in range)
Target: $107 (4-point range projected)
Risk: $3, Reward: $4
```
---
### CHAOS - STAY OUT!
**Strategy: Preservation**
**What to Do:**
- ❌ NO new positions
- ✅ Close existing positions if near entry
- ✅ Tighten stops on profitable trades
- ✅ Reduce position sizes dramatically
- ✅ Wait for regime to stabilize
**Why It's Dangerous:**
- Stop hunts are common
- Whipsaws everywhere
- News-driven volatility
- No technical reliability
- Even "perfect" setups fail
**When Does It End:**
- Volatility ratio drops < 1.5
- ADX starts rising (direction appears)
- Price respects support/resistance again
- Usually 1-5 days
---
## CONFLUENCE SYSTEM
### How It Works
The system scores each potential entry on 5 factors. More factors aligning = higher probability.
### Confluence Requirements by Regime
**Trending Regimes** (strictest):
- Minimum 2/5 required
- 3/5 = Good
- 4-5/5 = Excellent
**Ranging Regimes** (moderate):
- Minimum 1-2/5 required
- 2/5 = Good
- 3+/5 = Excellent
**Consolidation** (breakout only):
- Volume is most critical
- Direction confirmation
- Less confluence needed
### Adjusting Minimum Confluence
**If too few signals:**
- Lower from 2 to 1
- More trades, lower quality
**If too many false signals:**
- Raise from 2 to 3
- Fewer trades, higher quality
**Recommendation:**
- Start at 2
- Adjust based on win rate
- Aim for 55-65% win rate
---
## STRATEGY BACKTESTING
### Loading the Strategy
1. Copy `market_regime_strategy.pine`
2. Open Pine Editor in TradingView
3. Paste and "Add to Chart"
4. Strategy Tester tab opens at bottom
### Initial Settings
```
Risk Per Trade: 2%
ATR Stop Multiplier: 2.0
Reward:Risk Ratio: 2.5
Trade Longs: ✓
Trade Shorts: ✓
Trade Trending Only: ✗ (test both)
Avoid Chaos: ✓
Minimum Confluence: 2
```
### What to Look For
**Good Results:**
- Win Rate: 50-60%
- Profit Factor: 1.8-2.5
- Net Profit: Positive
- Max Drawdown: <20%
- Consistent equity curve
**Warning Signs:**
- Win Rate: <45% (too many losses)
- Profit Factor: <1.5 (barely profitable)
- Max Drawdown: >30% (too risky)
- Erratic equity curve (unstable)
### Testing Different Regimes
**Test 1: Trending Only**
```
Trade Trending Only: ✓
Result: Higher win rate, fewer trades
```
**Test 2: All Regimes**
```
Trade Trending Only: ✗
Result: More trades, potentially lower win rate
```
**Test 3: Long Only**
```
Trade Longs: ✓
Trade Shorts: ✗
Result: Works in bull markets
```
**Test 4: Short Only**
```
Trade Longs: ✗
Trade Shorts: ✓
Result: Works in bear markets
```
---
## SETTINGS OPTIMIZATION
### Key Parameters to Adjust
#### 1. Risk Per Trade (Most Important)
- **0.5%** = Very conservative
- **1.0%** = Conservative (recommended for beginners)
- **2.0%** = Moderate (recommended)
- **3.0%** = Aggressive
- **5.0%** = Very aggressive (not recommended)
**Impact:** Higher risk = higher returns BUT bigger drawdowns
#### 2. Reward:Risk Ratio
- **2:1** = More wins needed, hit target faster
- **2.5:1** = Balanced (recommended)
- **3:1** = Fewer wins needed, hold longer
- **4:1** = Very patient, best in trending
**Impact:** Higher R:R = can have lower win rate
#### 3. Minimum Confluence
- **1** = More signals, lower quality
- **2** = Balanced (recommended)
- **3** = Fewer signals, higher quality
- **4** = Very selective
- **5** = Almost never triggers
**Impact:** Higher = fewer but better trades
#### 4. ADX Thresholds
- **Trending: 20-30** (default 25)
- Lower = detect trends earlier
- Higher = only strong trends
- **Ranging: 15-25** (default 20)
- Lower = identify ranging earlier
- Higher = only weak trends
#### 5. Trend Period (SMA)
- **20-50** = Short-term trends
- **50** = Medium-term (default, recommended)
- **100-200** = Long-term trends
**Impact:** Longer period = slower regime changes, more stable
### Optimization Workflow
**Step 1: Baseline**
- Use all default settings
- Test on 3+ years
- Record: Win Rate, PF, Drawdown
**Step 2: Risk Optimization**
- Test 1%, 1.5%, 2%, 2.5%
- Find best risk-adjusted return
- Balance profit vs drawdown
**Step 3: R:R Optimization**
- Test 2:1, 2.5:1, 3:1
- Check which maximizes profit factor
- Consider holding time
**Step 4: Confluence Optimization**
- Test 1, 2, 3
- Find sweet spot for win rate
- Aim for 55-65% win rate
**Step 5: Regime Filter**
- Test with/without trend filter
- Test with/without chaos filter
- Find what works for your asset
---
## REAL TRADING EXAMPLES
### Example 1: Bull Trending - SPY
**Setup:**
- Regime: BULL TRENDING
- Price pulls back from $450 to $445
- EMA20 at $444
- RSI drops to 45
- Confluence: 4/5
**Entry:**
- Price closes at $445.50 (above EMA20)
- LONG signal appears
- Enter at $445.50
**Risk Management:**
- Stop: $443 (2 ATR = $2.50)
- Target: $451.75 (2.5:1 = $6.25)
- Risk: $2.50 per share
- Position: 80 shares (2% of $10k = $200 risk)
**Outcome:**
- Price rallies to $452 in 3 days
- Target hit
- Profit: $6.50 × 80 = $520
- Return: 2.6 × risk (excellent)
---
### Example 2: Bear Ranging - AAPL
**Setup:**
- Regime: BEAR RANGING
- Range: $165-$175
- Price rallies to $174
- Resistance at $175
- RSI at 68
- Confluence: 3/5
**Entry:**
- Rejection candle at $174
- SHORT signal appears
- Enter at $173.50
**Risk Management:**
- Stop: $176 (above resistance)
- Target: $166 (support)
- Risk: $2.50
- Position: 80 shares
**Outcome:**
- Price drops to $167 in 2 days
- Target hit
- Profit: $6.50 × 80 = $520
- Return: 2.6 × risk
---
### Example 3: Consolidation Breakout - BTC
**Setup:**
- Regime: CONSOLIDATION
- Range: $28,000 - $30,000
- Compressed for 2 weeks
- Volume declining
**Breakout:**
- Price breaks $30,000
- Volume surges 200%
- Close at $30,500
- LONG signal
**Entry:**
- Enter at $30,500
**Risk Management:**
- Stop: $29,500 (back in range)
- Target: $32,000 (range height = $2k)
- Risk: $1,000
- Position: 0.2 BTC ($200 risk on $10k)
**Outcome:**
- Price runs to $33,000
- Target exceeded
- Profit: $2,500 × 0.2 = $500
- Return: 2.5 × risk
---
### Example 4: Avoiding Chaos - Tesla
**Setup:**
- Regime: BULL TRENDING
- LONG position from $240
- Elon tweets something crazy
- Regime changes to CHAOS
**Action:**
- EXIT signal appears
- Close position immediately
- Current price: $242 (small profit)
**Outcome:**
- Next 3 days: wild swings
- High $255, Low $230
- By staying out, avoided:
- Potential stop out
- Whipsaw losses
- Stress
**Result:**
- Small profit preserved
- Capital protected
- Re-enter when regime stabilizes
---
## ALERTS SETUP
### Available Alerts
1. **Bull Trending Regime** - Market goes bullish
2. **Bear Trending Regime** - Market goes bearish
3. **Chaos Regime** - High volatility, stay out
4. **Long Entry Signal** - Buy opportunity
5. **Short Entry Signal** - Sell opportunity
6. **Long Exit Signal** - Close long
7. **Short Exit Signal** - Close short
### How to Set Up
1. Click **⏰ (Alert)** icon in TradingView
2. Select **Condition**: Choose indicator + alert type
3. **Options**: Popup, Email, Webhook, etc.
4. **Message**: Customize notification
5. Click **Create**
### Recommended Alert Strategy
**For Active Traders:**
- Long Entry Signal
- Short Entry Signal
- Long Exit Signal
- Short Exit Signal
**For Position Traders:**
- Bull Trending Regime (enter longs)
- Bear Trending Regime (enter shorts)
- Chaos Regime (exit all)
**For Conservative:**
- Only regime change alerts
- Manually review entries
- More selective
---
## TIPS FOR SUCCESS
### 1. Start Small
- Paper trade first
- Then 0.5% risk
- Build to 1-2% over time
### 2. Follow the Regime
- Don't fight it
- Adapt your style
- Different tactics for each
### 3. Trust the Confluence
- 4-5/5 = Best trades
- 2-3/5 = Good trades
- 1/5 = Skip unless desperate
### 4. Respect Exits
- Don't hope and hold
- Cut losses quickly
- Take profits at targets
### 5. Avoid Chaos
- Seriously, just stay out
- Protect your capital
- Wait for clarity
### 6. Keep a Journal
- Record every trade
- Note regime and confluence
- Review weekly
- Learn patterns
### 7. Backtest Thoroughly
- 3+ years minimum
- Multiple market conditions
- Different assets
- Walk-forward test
### 8. Be Patient
- Best setups are rare
- 1-3 trades per week is normal
- Quality over quantity
- Compound over time
---
## COMMON QUESTIONS
**Q: How many trades per month should I expect?**
A: Depends on timeframe and settings. Daily chart: 5-15 trades/month. 4H chart: 15-30 trades/month.
**Q: What's a good win rate?**
A: 55-65% is excellent. 50-55% is good. Below 50% needs adjustment.
**Q: Should I trade all regimes?**
A: Beginners: Only trending. Intermediate: Trending + ranging. Advanced: All except chaos.
**Q: Can I use this on any timeframe?**
A: Best on Daily and 4H. Works on 1H with more noise. Not recommended <1H.
**Q: What if I'm in a trade and regime changes?**
A: Exit immediately (if using indicator) or let strategy handle it automatically.
**Q: How do I know if I'm over-optimizing?**
A: If results are perfect on one period but fail on another. Use walk-forward testing.
**Q: Should I always take 5/5 confluence trades?**
A: Yes, but they're rare (1-2/month). Don't wait only for these.
**Q: Can I combine this with other indicators?**
A: Yes, but keep it simple. RSI, MACD already included. Maybe add volume profile.
**Q: What assets work best?**
A: Liquid stocks, major crypto, futures. Avoid forex spot (use futures), penny stocks.
**Q: How long to hold positions?**
A: Trending: Days to weeks. Ranging: Hours to days. Breakout: Days. Let the regime guide you.
---
## FINAL THOUGHTS
This system gives you:
- ✅ Clear market context (regime)
- ✅ High-probability entries (confluence)
- ✅ Defined exits (automatic signals)
- ✅ Adaptable tactics (regime-specific)
- ✅ Backtestable results (strategy version)
**Success requires:**
- 📚 Understanding each regime
- 🎯 Following the signals
- 💪 Discipline to wait
- 🧠 Emotional control
- 📊 Proper risk management
**Start your journey:**
1. Load the indicator
2. Watch for 1 week (no trading)
3. Identify regime patterns
4. Paper trade for 1 month
5. Go live with small size
6. Scale up as you gain confidence
**Remember:** The market will always be here. There's no rush. Master one regime at a time, and you'll be profitable in all conditions!
Good luck! 🚀
Luxy Super-Duper SuperTrend Predictor Engine and Buy/Sell signalA professional trend-following grading system that analyzes historical trend
patterns to provide statistical duration estimates using advanced similarity
matching and k-nearest neighbors analysis. Combines adaptive Supertrend with
intelligent duration statistics, multi-timeframe confluence, volume confirmation,
and quality scoring to identify high-probability setups with data-driven
target ranges across all timeframes.
Note: All duration estimates are statistical calculations based on historical data, not guarantees of future performance.
WHAT MAKES THIS DIFFERENT
Unlike traditional SuperTrend indicators that only tell you trend direction, this system answers the critical question: "What is the typical duration for trends like this?"
The Statistical Analysis Engine:
• Analyzes your chart's last 15+ completed SuperTrend trends (bullish and bearish separately)
• Uses k-nearest neighbors similarity matching to find historically similar setups
• Calculates statistical duration estimates based on current market conditions
• Learns from estimation errors and adapts over time (Advanced mode)
• Displays visual duration analysis box showing median, average, and range estimates
• Tracks Statistical accuracy with backtest statistics
Complete Trading System:
• Statistical trend duration analysis with three intelligence levels
• Adaptive Supertrend with dynamic ATR-based bands
• Multi-timeframe confluence analysis (6 timeframes: 5M to 1W)
• Volume confirmation with spike detection and momentum tracking
• Quality scoring system (0-70 points) rating each setup
• One-click preset optimization for all trading styles
• Anti-repaint guarantee on all signals and duration estimates
METHODOLOGY CREDITS
This indicator's approach is inspired by proven trading methodologies from respected market educators:
• Mark Minervini - Volatility Contraction Pattern (VCP) and pullback entry techniques
• William O'Neil - Volume confirmation principles and institutional buying patterns (CANSLIM methodology)
• Dan Zanger - Volatility expansion entries and momentum breakout strategies
Important: These are educational references only. This indicator does not guarantee any specific trading results. Always conduct your own analysis and risk management.
KEY FEATURES
1. TREND DURATION ANALYSIS SYSTEM - The Core Innovation
The statistical analysis engine is what sets this indicator apart from standard SuperTrend systems. It doesn't just identify trend changes - it provides statistical analysis of potential duration.
How It Works:
Step 1: Historical Tracking
• Automatically records every completed SuperTrend trend (duration in bars)
• Maintains separate databases for bullish trends and bearish trends
• Stores up to 15 most recent trends of each type
• Captures market conditions at each trend flip: volume ratio, ATR ratio, quality score, price distance from SuperTrend, proximity to support/resistance
Step 2: Similarity Matching (k-Nearest Neighbors)
• When new trend begins, system compares current conditions to ALL historical flips
• Calculates similarity score based on:
- Volume similarity (30% weight) - Is volume behaving similarly?
- Volatility similarity (30% weight) - Is ATR/volatility similar?
- Quality similarity (20% weight) - Is setup strength comparable?
- Distance similarity (10% weight) - Is price distance from ST similar?
- Support/Resistance proximity (10% weight) - Similar structural context?
• Selects the 15 MOST SIMILAR historical trends (not just all trends)
• This is like asking: "When conditions looked like this before, how long did trends last?"
Step 3: Statistical Analysis
• Calculates median duration (most common outcome)
• Calculates average duration (mean of similar trends)
• Determines realistic range (min to max of similar trends)
• Applies exponential weighting (recent trends weighted more heavily)
• Outputs confidence-weighted statistical estimate
Step 4: Advanced Intelligence (Advanced Mode Only)
The Advanced mode applies five sophisticated multipliers to refine estimates:
A) Market Structure Multiplier (±30%):
• Detects nearby support/resistance levels using pivot detection
• If flip occurs NEAR a key level: Estimate adjusted -30% (expect bounce/rejection)
• If flip occurs in open space: Estimate adjusted +30% (clear path for continuation)
• Uses configurable lookback period and ATR-based proximity threshold
B) Asset Type Multiplier (±40%):
• Adjusts duration estimates based on asset volatility characteristics
• Small Cap / Biotech: +40% (explosive, extended moves)
• Tech Growth: +20% (momentum-driven, longer trends)
• Blue Chip / Large Cap: 0% (baseline, steady trends)
• Dividend / Value: -20% (slower, grinding trends)
• Cyclical: Variable based on macro regime
• Crypto / High Volatility: +30% (parabolic potential)
C) Flip Strength Multiplier (±20%):
• Analyzes the QUALITY of the trend flip itself
• Strong flip (high volume + expanding ATR + quality score 60+): +20%
• Weak flip (low volume + contracting ATR + quality score under 40): -20%
• Logic: Historical data shows that powerful flips tend to be followed by longer trends
D) Error Learning Multiplier (±15%):
• Tracks Statistical accuracy over last 10 completed trends
• Calculates error ratio: (estimated duration / Actual Duration)
• If system consistently over-estimates: Apply -15% correction
• If system consistently under-estimates: Apply +15% correction
• Learns and adapts to current market regime
E) Regime Detection Multiplier (±20%):
• Analyzes last 3 trends of SAME TYPE (bull-to-bull or bear-to-bear)
• Compares recent trend durations to historical average
• If recent trends 20%+ longer than average: +20% adjustment (trending regime detected)
• If recent trends 20%+ shorter than average: -20% adjustment (choppy regime detected)
• Detects whether market is in trending or mean-reversion mode
Three analysis modes:
SIMPLE MODE - Basic Statistics
• Uses raw median of similar trends only
• No multipliers, no adjustments
• Best for: Beginners, clean trending markets
• Fastest calculations, minimal complexity
STANDARD MODE - Full Statistical Analysis
• Similarity matching with k-nearest neighbors
• Exponential weighting of recent trends
• Median, average, and range calculations
• Best for: Most traders, general market conditions
• Balance of accuracy and simplicity
ADVANCED MODE - Statistics + Intelligence
• Everything in Standard mode PLUS
• All 5 advanced multipliers (structure, asset type, flip strength, learning, regime)
• Highest Statistical accuracy in testing
• Best for: Experienced traders, volatile/complex markets
• Maximum intelligence, most adaptive
Visual Duration Analysis Box:
When a new trend begins (SuperTrend flip), a box appears on your chart showing:
• Analysis Mode (Simple / Standard / Advanced)
• Number of historical trends analyzed
• Median expected duration (most likely outcome)
• Average expected duration (mean of similar trends)
• Range (minimum to maximum from similar trends)
• Advanced multipliers breakdown (Advanced mode only)
• Backtest accuracy statistics (if available)
The box extends from the flip bar to the estimated endpoint based on historical data, giving you a visual target for trend duration. Box updates in real-time as trend progresses.
Backtest & Accuracy Tracking:
• System backtests its own duration estimates using historical data
• Shows accuracy metrics: how well duration estimates matched actual durations
• Tracks last 10 completed duration estimates separately
• Displays statistics in dashboard and duration analysis boxes
• Helps you understand statistical reliability on your specific symbol/timeframe
Anti-Repaint Guarantee:
• duration analysis boxes only appear AFTER bar close (barstate.isconfirmed)
• Historical duration estimates never disappear or change
• What you see in history is exactly what you would have seen real-time
• No future data leakage, no lookahead bias
2. INTELLIGENT PRESET CONFIGURATIONS - One-Click Optimization
Unlike indicators that require tedious parameter tweaking, this system includes professionally optimized presets for every trading style. Select your approach from the dropdown and ALL parameters auto-configure.
"AUTO (DETECT FROM TF)" - RECOMMENDED
The smartest option: automatically selects optimal settings based on your chart timeframe.
• 1m-5m charts → Scalping preset (ATR: 7, Mult: 2.0)
• 15m-1h charts → Day Trading preset (ATR: 10, Mult: 2.5)
• 2h-4h-D charts → Swing Trading preset (ATR: 14, Mult: 3.0)
• W-M charts → Position Trading preset (ATR: 21, Mult: 4.0)
Benefits:
• Zero configuration - works immediately
• Always matched to your timeframe
• Switch timeframe = automatic adjustment
• Perfect for traders who use multiple timeframes
"SCALPING (1-5M)" - Ultra-Fast Signals
Optimized for: 1-5 minute charts, high-frequency trading, quick profits
Target holding period: Minutes to 1-2 hours maximum
Best markets: High-volume stocks, major crypto pairs, active futures
Parameter Configuration:
• Supertrend: ATR 7, Multiplier 2.0 (very sensitive)
• Volume: MA 10, High 1.8x, Spike 3.0x (catches quick surges)
• Volume Momentum: AUTO-DISABLED (too restrictive for fast scalping)
• Quality minimum: 40 points (accepts more setups)
• Duration Analysis: Uses last 15 trends with heavy recent weighting
Trading Logic:
Speed over precision. Short ATR period and low multiplier create highly responsive SuperTrend. Volume momentum filter disabled to avoid missing fast moves. Quality threshold relaxed to catch more opportunities in rapid market conditions.
Signals per session: 5-15 typically
Hold time: Minutes to couple hours
Best for: Active traders with fast execution
"DAY TRADING (15M-1H)" - Balanced Approach
Optimized for: 15-minute to 1-hour charts, intraday moves, session-based trading
Target holding period: 30 minutes to 8 hours (within trading day)
Best markets: Large-cap stocks, major indices, established crypto
Parameter Configuration:
• Supertrend: ATR 10, Multiplier 2.5 (balanced)
• Volume: MA 20, High 1.5x, Spike 2.5x (standard detection)
• Volume Momentum: 5/20 periods (confirms intraday strength)
• Quality minimum: 50 points (good setups preferred)
• Duration Analysis: Balanced weighting of recent vs historical
Trading Logic:
The most balanced configuration. ATR 10 with multiplier 2.5 provides steady trend following that avoids noise while catching meaningful moves. Volume momentum confirms institutional participation without being overly restrictive.
Signals per session: 2-5 typically
Hold time: 30 minutes to full day
Best for: Part-time and full-time active traders
"SWING TRADING (4H-D)" - Trend Stability
Optimized for: 4-hour to Daily charts, multi-day holds, trend continuation
Target holding period: 2-15 days typically
Best markets: Growth stocks, sector ETFs, trending crypto, commodity futures
Parameter Configuration:
• Supertrend: ATR 14, Multiplier 3.0 (stable)
• Volume: MA 30, High 1.3x, Spike 2.2x (accumulation focus)
• Volume Momentum: 10/30 periods (trend stability)
• Quality minimum: 60 points (high-quality setups only)
• Duration Analysis: Favors consistent historical patterns
Trading Logic:
Designed for substantial trend moves while filtering short-term noise. Higher ATR period and multiplier create stable SuperTrend that won't flip on minor corrections. Stricter quality requirements ensure only strongest setups generate signals.
Signals per week: 2-5 typically
Hold time: Days to couple weeks
Best for: Part-time traders, swing style
"POSITION TRADING (D-W)" - Long-Term Trends
Optimized for: Daily to Weekly charts, major trend changes, portfolio allocation
Target holding period: Weeks to months
Best markets: Blue-chip stocks, major indices, established cryptocurrencies
Parameter Configuration:
• Supertrend: ATR 21, Multiplier 4.0 (very stable)
• Volume: MA 50, High 1.2x, Spike 2.0x (long-term accumulation)
• Volume Momentum: 20/50 periods (major trend confirmation)
• Quality minimum: 70 points (excellent setups only)
• Duration Analysis: Heavy emphasis on multi-year historical data
Trading Logic:
Conservative approach focusing on major trend changes. Extended ATR period and high multiplier create SuperTrend that only flips on significant reversals. Very strict quality filters ensure signals represent genuine long-term opportunities.
Signals per month: 1-2 typically
Hold time: Weeks to months
Best for: Long-term investors, set-and-forget approach
"CUSTOM" - Advanced Configuration
Purpose: Complete manual control for experienced traders
Use when: You understand the parameters and want specific optimization
Best for: Testing new approaches, unusual market conditions, specific instruments
Full control over:
• All SuperTrend parameters
• Volume thresholds and momentum periods
• Quality scoring weights
• analysis mode and multipliers
• Advanced features tuning
Preset Comparison Quick Reference:
Chart Timeframe: Scalping (1M-5M) | Day Trading (15M-1H) | Swing (4H-D) | Position (D-W)
Signals Frequency: Very High | High | Medium | Low
Hold Duration: Minutes | Hours | Days | Weeks-Months
Quality Threshold: 40 pts | 50 pts | 60 pts | 70 pts
ATR Sensitivity: Highest | Medium | Lower | Lowest
Time Investment: Highest | High | Medium | Lowest
Experience Level: Expert | Advanced | Intermediate | Beginner+
3. QUALITY SCORING SYSTEM (0-70 Points)
Every signal is rated in real-time across three dimensions:
Volume Confirmation (0-30 points):
• Volume Spike (2.5x+ average): 30 points
• High Volume (1.5x+ average): 20 points
• Above Average (1.0x+ average): 10 points
• Below Average: 0 points
Volatility Assessment (0-30 points):
• Expanding ATR (1.2x+ average): 30 points
• Rising ATR (1.0-1.2x average): 15 points
• Contracting/Stable ATR: 0 points
Volume Momentum (0-10 points):
• Strong Momentum (1.2x+ ratio): 10 points
• Rising Momentum (1.0-1.2x ratio): 5 points
• Weak/Neutral Momentum: 0 points
Score Interpretation:
60-70 points - EXCELLENT:
• All factors aligned
• High conviction setup
• Maximum position size (within risk limits)
• Primary trading opportunities
45-59 points - STRONG:
• Multiple confirmations present
• Above-average setup quality
• Standard position size
• Good trading opportunities
30-44 points - GOOD:
• Basic confirmations met
• Acceptable setup quality
• Reduced position size
• Wait for additional confirmation or trade smaller
Below 30 points - WEAK:
• Minimal confirmations
• Low probability setup
• Consider passing
• Only for aggressive traders in strong trends
Only signals meeting your minimum quality threshold (configurable per preset) generate alerts and labels.
4. MULTI-TIMEFRAME CONFLUENCE ANALYSIS
The system can simultaneously analyze trend alignment across 6 timeframes (optional feature):
Timeframes analyzed:
• 5-minute (scalping context)
• 15-minute (intraday momentum)
• 1-hour (day trading bias)
• 4-hour (swing context)
• Daily (primary trend)
• Weekly (macro trend)
Confluence Interpretation:
• 5-6/6 aligned - Very strong multi-timeframe agreement (highest confidence)
• 3-4/6 aligned - Moderate agreement (standard setup)
• 1-2/6 aligned - Weak agreement (caution advised)
Dashboard shows real-time alignment count with color-coding. Higher confluence typically correlates with longer, stronger trends.
5. VOLUME MOMENTUM FILTER - Institutional Money Flow
Unlike traditional volume indicators that just measure size, Volume Momentum tracks the RATE OF CHANGE in volume:
How it works:
• Compares short-term volume average (fast period) to long-term average (slow period)
• Ratio above 1.0 = Volume accelerating (money flowing IN)
• Ratio above 1.2 = Strong acceleration (institutional participation likely)
• Ratio below 0.8 = Volume decelerating (money flowing OUT)
Why it matters:
• Confirms trend with actual money flow, not just price
• Leading indicator (volume often leads price)
• Catches accumulation/distribution before breakouts
• More intuitive than complex mathematical filters
Integration with signals:
• Optional filter - can be enabled/disabled per preset
• When enabled: Only signals with rising volume momentum fire
• AUTO-DISABLED in Scalping mode (too restrictive for fast trading)
• Configurable fast/slow periods per trading style
6. ADAPTIVE SUPERTREND MULTIPLIER
Traditional SuperTrend uses fixed ATR multiplier. This system dynamically adjusts the multiplier (0.8x to 1.2x base) based on:
• Trend Strength: Price correlation over lookback period
• Volume Weight: Current volume relative to average
Benefits:
• Tighter bands in calm markets (less premature exits)
• Wider bands in volatile conditions (avoids whipsaws)
• Better adaptation to biotech, small-cap, and crypto volatility
• Optional - can be disabled for classic constant multiplier
7. VISUAL GRADIENT RIBBON
26-layer exponential gradient fill between price and SuperTrend line provides instant visual trend strength assessment:
Color System:
• Green shades - Bullish trend + volume confirmation (strongest)
• Blue shades - Bullish trend, normal volume
• Orange shades - Bearish trend + volume confirmation
• Red shades - Bearish trend (weakest)
Opacity varies based on:
• Distance from SuperTrend (farther = more opaque)
• Volume intensity (higher volume = stronger color)
The ribbon provides at-a-glance trend strength without cluttering your chart. Can be toggled on/off.
8. INTELLIGENT ALERT SYSTEM
Two-tier alert architecture for flexibility:
Automatic Alerts:
• Fire automatically on BUY and SELL signals
• Include full context: quality score, volume state, volume momentum
• One alert per bar close (alert.freq_once_per_bar_close)
• Message format: "BUY: Supertrend bullish + Quality: 65/70 | Volume: HIGH | Vol Momentum: STRONG (1.35x)"
Customizable Alert Conditions:
• Appear in TradingView's "Create Alert" dialog
• Three options: BUY Signal Only, SELL Signal Only, ANY Signal (BUY or SELL)
• Use TradingView placeholders: {{ticker}}, {{interval}}, {{close}}, {{time}}
• Fully customizable message templates
All alerts use barstate.isconfirmed - Zero repaint guarantee.
9. ANTI-REPAINT ARCHITECTURE
Every component guaranteed non-repainting:
• Entry signals: Only appear after bar close
• duration analysis boxes: Created only on confirmed SuperTrend flips
• Informative labels: Wait for bar confirmation
• Alerts: Fire once per closed bar
• Multi-timeframe data: Uses lookahead=barmerge.lookahead_off
What you see in history is exactly what you would have seen in real-time. No disappearing signals, no changed duration estimates.
HOW TO USE THE INDICATOR
QUICK START - 3 Steps to Trading:
Step 1: Select Your Trading Style
Open indicator settings → "Quick Setup" section → Trading Style Preset dropdown
Options:
• Auto (Detect from TF) - RECOMMENDED: Automatically configures based on your chart timeframe
• Scalping (1-5m) - For 1-5 minute charts, ultra-fast signals
• Day Trading (15m-1h) - For 15m-1h charts, balanced approach
• Swing Trading (4h-D) - For 4h-Daily charts, trend stability
• Position Trading (D-W) - For Daily-Weekly charts, long-term trends
• Custom - Manual configuration (advanced users only)
Choose "Auto" and you're done - all parameters optimize automatically.
Step 2: Understand the Signals
BUY Signal (Green Triangle Below Price):
• SuperTrend flipped bullish
• Quality score meets minimum threshold (varies by preset)
• Volume confirmation present (if filter enabled)
• Volume momentum rising (if filter enabled)
• duration analysis box shows expected trend duration
SELL Signal (Red Triangle Above Price):
• SuperTrend flipped bearish
• Quality score meets minimum threshold
• Volume confirmation present (if filter enabled)
• Volume momentum rising (if filter enabled)
• duration analysis box shows expected trend duration
Duration Analysis Box:
• Appears at SuperTrend flip (start of new trend)
• Shows median, average, and range duration estimates
• Extends to estimated endpoint based on historical data visually
• Updates mode-specific intelligence (Simple/Standard/Advanced)
Step 3: Use the Dashboard for Context
Dashboard (top-right corner) shows real-time metrics:
• Row 1 - Quality Score: Current setup rating (0-70)
• Row 2 - SuperTrend: Direction and current level
• Row 3 - Volume: Status (Spike/High/Normal/Low) with color
• Row 4 - Volatility: State (Expanding/Rising/Stable/Contracting)
• Row 5 - Volume Momentum: Ratio and trend
• Row 6 - Duration Statistics: Accuracy metrics and track record
Every cell has detailed tooltip - hover for full explanations.
SIGNAL INTERPRETATION BY QUALITY SCORE:
Excellent Setup (60-70 points):
• Quality Score: 60-70
• Volume: Spike or High
• Volatility: Expanding
• Volume Momentum: Strong (1.2x+)
• MTF Confluence (if enabled): 5-6/6
• Action: Primary trade - maximum position size (within risk limits)
• Statistical reliability: Highest - duration estimates most accurate
Strong Setup (45-59 points):
• Quality Score: 45-59
• Volume: High or Above Average
• Volatility: Rising
• Volume Momentum: Rising (1.0-1.2x)
• MTF Confluence (if enabled): 3-4/6
• Action: Standard trade - normal position size
• Statistical reliability: Good - duration estimates reliable
Good Setup (30-44 points):
• Quality Score: 30-44
• Volume: Above Average
• Volatility: Stable or Rising
• Volume Momentum: Neutral to Rising
• MTF Confluence (if enabled): 3-4/6
• Action: Cautious trade - reduced position size, wait for additional confirmation
• Statistical reliability: Moderate - duration estimates less certain
Weak Setup (Below 30 points):
• Quality Score: Below 30
• Volume: Low or Normal
• Volatility: Contracting or Stable
• Volume Momentum: Weak
• MTF Confluence (if enabled): 1-2/6
• Action: Pass or wait for improvement
• Statistical reliability: Low - duration estimates unreliable
USING duration analysis boxES FOR TRADE MANAGEMENT:
Entry Timing:
• Enter on SuperTrend flip (signal bar close)
• duration analysis box appears simultaneously
• Note the median duration - this is your expected hold time
Profit Targets:
• Conservative: Use MEDIAN duration as profit target (50% probability)
• Moderate: Use AVERAGE duration (mean of similar trends)
• Aggressive: Aim for MAX duration from range (best historical outcome)
Position Management:
• Scale out at median duration (take partial profits)
• Trail stop as trend extends beyond median
• Full exit at average duration or SuperTrend flip (whichever comes first)
• Re-evaluate if trend exceeds estimated range
analysis mode Selection:
• Simple: Clean trending markets, beginners, minimal complexity
• Standard: Most markets, most traders (recommended default)
• Advanced: Volatile markets, complex instruments, experienced traders seeking highest accuracy
Asset Type Configuration (Advanced Mode):
If using Advanced analysis mode, configure Asset Type for optimal accuracy:
• Small Cap: Stocks under $2B market cap, low liquidity
• Biotech / Speculative: Clinical-stage pharma, penny stocks, high-risk
• Blue Chip / Large Cap: S&P 500, mega-cap tech, stable large companies
• Tech Growth: High-growth tech (TSLA, NVDA, growth SaaS)
• Dividend / Value: Dividend aristocrats, value stocks, utilities
• Cyclical: Energy, materials, industrials (macro-driven)
• Crypto / High Volatility: Bitcoin, altcoins, highly volatile assets
Correct asset type selection improves Statistical accuracy by 15-20%.
RISK MANAGEMENT GUIDELINES:
1. Stop Loss Placement:
Long positions:
• Place stop below recent swing low OR
• Place stop below SuperTrend level (whichever is tighter)
• Use 1-2 ATR distance as guideline
• Recommended: SuperTrend level (built-in volatility adjustment)
Short positions:
• Place stop above recent swing high OR
• Place stop above SuperTrend level (whichever is tighter)
• Use 1-2 ATR distance as guideline
• Recommended: SuperTrend level
2. Position Sizing by Quality Score:
• Excellent (60-70): Maximum position size (2% risk per trade)
• Strong (45-59): Standard position size (1.5% risk per trade)
• Good (30-44): Reduced position size (1% risk per trade)
• Weak (Below 30): Pass or micro position (0.5% risk - learning trades only)
3. Exit Strategy Options:
Option A - Statistical Duration-Based Exit:
• Exit at median estimated duration (conservative)
• Exit at average estimated duration (moderate)
• Trail stop beyond average duration (aggressive)
Option B - Signal-Based Exit:
• Exit on opposite signal (SELL after BUY, or vice versa)
• Exit on SuperTrend flip (trend reversal)
• Exit if quality score drops below 30 mid-trend
Option C - Hybrid (Recommended):
• Take 50% profit at median estimated duration
• Trail stop on remaining 50% using SuperTrend as trailing level
• Full exit on SuperTrend flip or quality collapse
4. Trade Filtering:
For higher win-rate (fewer trades, better quality):
• Increase minimum quality score (try 60 for swing, 50 for day trading)
• Enable volume momentum filter (ensure institutional participation)
• Require higher MTF confluence (5-6/6 alignment)
• Use Advanced analysis mode with appropriate asset type
For more opportunities (more trades, lower quality threshold):
• Decrease minimum quality score (40 for day trading, 35 for scalping)
• Disable volume momentum filter
• Lower MTF confluence requirement
• Use Simple or Standard analysis mode
SETTINGS OVERVIEW
Quick Setup Section:
• Trading Style Preset: Auto / Scalping / Day Trading / Swing / Position / Custom
Dashboard & Display:
• Show Dashboard (ON/OFF)
• Dashboard Position (9 options: Top/Middle/Bottom + Left/Center/Right)
• Text Size (Auto/Tiny/Small/Normal/Large/Huge)
• Show Ribbon Fill (ON/OFF)
• Show SuperTrend Line (ON/OFF)
• Bullish Color (default: Green)
• Bearish Color (default: Red)
• Show Entry Labels - BUY/SELL signals (ON/OFF)
• Show Info Labels - Volume events (ON/OFF)
• Label Size (Auto/Tiny/Small/Normal/Large/Huge)
Supertrend Configuration:
• ATR Length (default varies by preset: 7-21)
• ATR Multiplier Base (default varies by preset: 2.0-4.0)
• Use Adaptive Multiplier (ON/OFF) - Dynamic 0.8x-1.2x adjustment
• Smoothing Factor (0.0-0.5) - EMA smoothing applied to bands
• Neutral Bars After Flip (0-10) - Hide ST immediately after flip
Volume Momentum:
• Enable Volume Momentum Filter (ON/OFF)
• Fast Period (default varies by preset: 3-20)
• Slow Period (default varies by preset: 10-50)
Volume Analysis:
• Volume MA Length (default varies by preset: 10-50)
• High Volume Threshold (default: 1.5x)
• Spike Threshold (default: 2.5x)
• Low Volume Threshold (default: 0.7x)
Quality Filters:
• Minimum Quality Score (0-70, varies by preset)
• Require Volume Confirmation (ON/OFF)
Trend Duration Analysis:
• Show Duration Analysis (ON/OFF) - Display duration analysis boxes
• analysis mode - Simple / Standard / Advanced
• Asset Type - 7 options (Small Cap, Biotech, Blue Chip, Tech Growth, Dividend, Cyclical, Crypto)
• Use Exponential Weighting (ON/OFF) - Recent trends weighted more
• Decay Factor (0.5-0.99) - How much more recent trends matter
• Structure Lookback (3-30) - Pivot detection period for support/resistance
• Proximity Threshold (xATR) - How close to level qualifies as "near"
• Enable Error Learning (ON/OFF) - System learns from estimation errors
• Memory Depth (3-20) - How many past errors to remember
Box Visual Settings:
• duration analysis box Border Color
• duration analysis box Background Color
• duration analysis box Text Color
• duration analysis box Border Width
• duration analysis box Transparency
Multi-Timeframe (Optional Feature):
• Enable MTF Confluence (ON/OFF)
• Minimum Alignment Required (0-6)
• Individual timeframe enable/disable toggles
• Custom timeframe selection options
All preset configurations override manual inputs except when "Custom" is selected.
ADVANCED FEATURES
1. Scalpel Mode (Optional)
Advanced pullback entry system that waits for healthy retracements within established trends before signaling entry:
• Monitors price distance from SuperTrend levels
• Requires pullback to configurable range (default: 30-50%)
• Ensures trend remains intact before entry signal
• Reduces whipsaw and false breakouts
• Inspired by Mark Minervini's VCP pullback entries
Best for: Swing traders and day traders seeking precision entries
Scalpers: Consider disabling for faster entries
2. Error Learning System (Advanced analysis mode Only)
The system learns from its own estimation errors:
• Tracks last 10-20 completed duration estimates (configurable memory depth)
• Calculates error ratio for each: estimated duration / Actual Duration
• If system consistently over-estimates: Applies negative correction (-15%)
• If system consistently under-estimates: Applies positive correction (+15%)
• Adapts to current market regime automatically
This self-correction mechanism improves accuracy over time as the system gathers more data on your specific symbol and timeframe.
3. Regime Detection (Advanced analysis mode Only)
Automatically detects whether market is in trending or choppy regime:
• Compares last 3 trends to historical average
• Recent trends 20%+ longer → Trending regime (+20% to estimates)
• Recent trends 20%+ shorter → Choppy regime (-20% to estimates)
• Applied separately to bullish and bearish trends
Helps duration estimates adapt to changing market conditions without manual intervention.
4. Exponential Weighting
Option to weight recent trends more heavily than distant history:
• Default decay factor: 0.9
• Recent trends get higher weight in statistical calculations
• Older trends gradually decay in importance
• Rationale: Recent market behavior more relevant than old data
• Can be disabled for equal weighting
5. Backtest Statistics
System backtests its own duration estimates using historical data:
• Walks through past trends chronologically
• Calculates what duration estimate WOULD have been at each flip
• Compares to actual duration that occurred
• Displays accuracy metrics in duration analysis boxes and dashboard
• Helps assess statistical reliability on your specific chart
Note: Backtest uses only data available AT THE TIME of each historical flip (no lookahead bias).
TECHNICAL SPECIFICATIONS
• Pine Script Version: v6
• Indicator Type: Overlay (draws on price chart)
• Max Boxes: 500 (for duration analysis box storage)
• Max Bars Back: 5000 (for comprehensive historical analysis)
• Security Calls: 1 (for MTF if enabled - optimized)
• Repainting: NO - All signals and duration estimates confirmed on bar close
• Lookahead Bias: NO - All HTF data properly offset, all duration estimates use only historical data
• Real-time Updates: YES - Dashboard and quality scores update live
• Alert Capable: YES - Both automatic alerts and customizable alert conditions
• Multi-Symbol: Works on stocks, crypto, forex, futures, indices
Performance Optimization:
• Conditional calculations (duration analysis can be disabled to reduce load)
• Efficient array management (circular buffers for trend storage)
• Streamlined gradient rendering (26 layers, can be toggled off)
• Smart label cooldown system (prevents label spam)
• Optimized similarity matching (analyzes only relevant trends)
Data Requirements:
• Minimum 50-100 bars for initial duration analysis (builds historical database)
• Optimal: 500+ bars for robust statistical analysis
• Longer history = more accurate duration estimates
• Works on any timeframe from 1 minute to monthly
KNOWN LIMITATIONS
• Trending Markets Only: Performs best in clear trends. May generate false signals in choppy/sideways markets (use quality score filtering and regime detection to mitigate)
• Lagging Nature: Like all trend-following systems, signals occur AFTER trend establishment, not at exact tops/bottoms. Use duration analysis boxes to set realistic profit targets.
• Initial Learning Period: Duration analysis system requires 10-15 completed trends to build reliable historical database. Early duration estimates less accurate (first few weeks on new symbol/timeframe).
• Visual Load: 26-layer gradient ribbon may slow performance on older devices. Disable ribbon if experiencing lag.
• Statistical accuracy Variables: Duration estimates are statistical estimates, not guarantees. Accuracy varies by:
- Market regime (trending vs choppy)
- Asset volatility characteristics
- Quality of historical pattern matches
- Timeframe traded (higher TF = more reliable)
• Not Best Suitable For:
- Ultra-short-term scalping (sub-1-minute charts)
- Mean-reversion strategies (designed for trend-following)
- Range-bound trading (requires trending conditions)
- News-driven spikes (estimates based on technical patterns, not fundamentals)
FREQUENTLY ASKED QUESTIONS
Q: Does this indicator repaint?
A: Absolutely not. All signals, duration analysis boxes, labels, and alerts use barstate.isconfirmed checks. They only appear after the bar closes. What you see in history is exactly what you would have seen in real-time. Zero repaint guarantee.
Q: How accurate are the trend duration estimates?
A: Accuracy varies by mode, market conditions, and historical data quality:
• Simple mode: 60-70% accuracy (within ±20% of actual duration)
• Standard mode: 70-80% accuracy (within ±20% of actual duration)
• Advanced mode: 75-85% accuracy (within ±20% of actual duration)
Best accuracy achieved on:
• Higher timeframes (4H, Daily, Weekly)
• Trending markets (not choppy/sideways)
• Assets with consistent behavior (Blue Chip, Large Cap)
• After 20+ historical trends analyzed (builds robust database)
Remember: All duration estimates are statistical calculations based on historical patterns, not guarantees.
Q: Which analysis mode should I use?
A:
• Simple: Beginners, clean trending markets, want minimal complexity
• Standard: Most traders, general market conditions (RECOMMENDED DEFAULT)
• Advanced: Experienced traders, volatile/complex markets (biotech, small-cap, crypto), seeking maximum accuracy
Advanced mode requires correct Asset Type configuration for optimal results.
Q: What's the difference between the trading style presets?
A: Each preset optimizes ALL parameters for a specific trading approach:
• Scalping: Ultra-sensitive (ATR 7, Mult 2.0), more signals, shorter holds
• Day Trading: Balanced (ATR 10, Mult 2.5), moderate signals, intraday holds
• Swing Trading: Stable (ATR 14, Mult 3.0), fewer signals, multi-day holds
• Position Trading: Very stable (ATR 21, Mult 4.0), rare signals, week/month holds
Auto mode automatically selects based on your chart timeframe.
Q: Should I use Auto mode or manually select a preset?
A: Auto mode is recommended for most traders. It automatically matches settings to your timeframe and re-optimizes if you switch charts. Only use manual preset selection if:
• You want scalping settings on a 15m chart (overriding auto-detection)
• You want swing settings on a 1h chart (more conservative than auto would give)
• You're testing different approaches on same timeframe
Q: Can I use this for scalping and day trading?
A: Absolutely! The preset system is specifically designed for all trading styles:
• Select "Scalping (1-5m)" for 1-5 minute charts
• Select "Day Trading (15m-1h)" for 15m-1h charts
• Or use "Auto" mode and it configures automatically
Volume momentum filter is auto-disabled in Scalping mode for faster signals.
Q: What is Volume Momentum and why does it matter?
A: Volume Momentum compares short-term volume (fast MA) to long-term volume (slow MA). It answers: "Is money flowing into this asset faster now than historically?"
Why it matters:
• Volume often leads price (early warning system)
• Confirms institutional participation (smart money)
• No lag like price-based indicators
• More intuitive than complex mathematical filters
When the ratio is above 1.2, you have strong evidence that institutions are accumulating (bullish) or distributing (bearish).
Q: How do I set up alerts?
A: Two options:
Option 1 - Automatic Alerts:
1. Right-click on chart → Add Alert
2. Condition: Select this indicator
3. Choose "Any alert() function call"
4. Configure notification method (app, email, webhook)
5. You'll receive detailed alerts on every BUY and SELL signal
Option 2 - Customizable Alert Conditions:
1. Right-click on chart → Add Alert
2. Condition: Select this indicator
3. You'll see three options in dropdown:
- "BUY Signal" (long signals only)
- "SELL Signal" (short signals only)
- "ANY Signal" (both BUY and SELL)
4. Choose desired option and customize message template
5. Uses TradingView placeholders: {{ticker}}, {{close}}, {{time}}, etc.
All alerts fire only on confirmed bar close (no repaint).
Q: What is Scalpel Mode and should I use it?
A: Scalpel Mode waits for healthy pullbacks within established trends before signaling entry. It reduces whipsaws and improves entry timing.
Recommended ON for:
• Swing traders (want precision entries on pullbacks)
• Day traders (willing to wait for better prices)
• Risk-averse traders (prefer fewer but higher-quality entries)
Recommended OFF for:
• Scalpers (need immediate entries, can't wait for pullbacks)
• Momentum traders (want to enter on breakout, not pullback)
• Aggressive traders (prefer more opportunities over precision)
Q: Why do some duration estimates show wider ranges than others?
A: Range width reflects historical trend variability:
• Narrow range: Similar historical trends had consistent durations (high confidence)
• Wide range: Similar historical trends had varying durations (lower confidence)
Wide ranges often occur:
• Early in analysis (fewer historical trends to learn from)
• In volatile/choppy markets (inconsistent trend behavior)
• On lower timeframes (more noise, less consistency)
The median and average still provide useful targets even when range is wide.
Q: Can I customize the dashboard position and appearance?
A: Yes! Dashboard settings include:
• Position: 9 options (Top/Middle/Bottom + Left/Center/Right)
• Text Size: Auto, Tiny, Small, Normal, Large, Huge
• Show/Hide: Toggle entire dashboard on/off
Choose position that doesn't overlap important price action on your specific chart.
Q: Which timeframe should I trade on?
A: Depends on your trading style and time availability:
• 1-5 minute: Active scalping, requires constant monitoring
• 15m-1h: Day trading, check few times per session
• 4h-Daily: Swing trading, check once or twice daily
• Daily-Weekly: Position trading, check weekly
General principle: Higher timeframes produce:
• Fewer signals (less frequent)
• Higher quality setups (stronger confirmations)
• More reliable duration estimates (better statistical data)
• Less noise (clearer trends)
Start with Daily chart if new to trading. Move to lower timeframes as you gain experience.
Q: Does this work on all markets (stocks, crypto, forex)?
A: Yes, it works on all markets with trending characteristics:
Excellent for:
• Stocks (especially growth and momentum names)
• Crypto (BTC, ETH, major altcoins)
• Futures (indices, commodities)
• Forex majors (EUR/USD, GBP/USD, etc.)
Best results on:
• Trending markets (not range-bound)
• Liquid instruments (tight spreads, good fills)
• Volatile assets (clear trend development)
Less effective on:
• Range-bound/sideways markets
• Ultra-low volatility instruments
• Illiquid small-caps (use caution)
Configure Asset Type (in Advanced analysis mode) to match your instrument for best accuracy.
Q: How many signals should I expect per day/week?
A: Highly variable based on:
By Timeframe:
• 1-5 minute: 5-15 signals per session
• 15m-1h: 2-5 signals per day
• 4h-Daily: 2-5 signals per week
• Daily-Weekly: 1-2 signals per month
By Market Volatility:
• High volatility = more SuperTrend flips = more signals
• Low volatility = fewer flips = fewer signals
By Quality Filter:
• Higher threshold (60-70) = fewer but better signals
• Lower threshold (30-40) = more signals, lower quality
By Volume Momentum Filter:
• Enabled = Fewer signals (only volume-confirmed)
• Disabled = More signals (all SuperTrend flips)
Adjust quality threshold and filters to match your desired signal frequency.
Q: What's the difference between entry labels and info labels?
A:
Entry Labels (BUY/SELL):
• Your primary trading signals
• Based on SuperTrend flip + all confirmations (quality, volume, momentum)
• Include quality score and confirmation icons
• These are actionable entry points
Info Labels (Volume Spike):
• Additional market context
• Show volume events that may support or contradict trend
• 8-bar cooldown to prevent spam
• NOT necessarily entry points - contextual information only
Control separately: Can show entry labels without info labels (recommended for clean charts).
Q: Can I combine this with other indicators?
A: Absolutely! This works well with:
• RSI: For divergences and overbought/oversold conditions
• Support/Resistance: Confluence with key levels
• Fibonacci Retracements: Pullback targets in Scalpel Mode
• Price Action Patterns: Flags, pennants, cup-and-handle
• MACD: Additional momentum confirmation
• Bollinger Bands: Volatility context
This indicator provides trend direction and duration estimates - complement with other tools for entry refinement and additional confluence.
Q: Why did I get a low-quality signal? Can I filter them out?
A: Yes! Increase the Minimum Quality Score in settings.
If you're seeing signals with quality below your preference:
• Day Trading: Set minimum to 50
• Swing Trading: Set minimum to 60
• Position Trading: Set minimum to 70
Only signals meeting the threshold will appear. This reduces frequency but improves win-rate.
Q: How do I interpret the MTF Confluence count?
A: Shows how many of 6 timeframes agree with current trend:
• 6/6 aligned: Perfect agreement (extremely rare, highest confidence)
• 5/6 aligned: Very strong alignment (high confidence)
• 4/6 aligned: Good alignment (standard quality setup)
• 3/6 aligned: Moderate alignment (acceptable)
• 2/6 aligned: Weak alignment (caution)
• 1/6 aligned: Very weak (likely counter-trend)
Higher confluence typically correlates with longer, stronger trends. However, MTF analysis is optional - you can disable it and rely solely on quality scoring.
Q: Is this suitable for beginners?
A: Yes, but requires foundational knowledge:
You should understand:
• Basic trend-following concepts (higher highs, higher lows)
• Risk management principles (position sizing, stop losses)
• How to read candlestick charts
• What volume and volatility mean
Beginner-friendly features:
• Auto preset mode (zero configuration)
• Quality scoring (tells you signal strength)
• Dashboard tooltips (hover for explanations)
• duration analysis boxes (visual profit targets)
Recommended for beginners:
1. Start with "Auto" or "Swing Trading" preset on Daily chart
2. Use Standard Analysis Mode (not Advanced)
3. Set minimum quality to 60 (fewer but better signals)
4. Paper trade first for 2-4 weeks
5. Study methodology references (Minervini, O'Neil, Zanger)
Q: What is the Asset Type setting and why does it matter?
A: Asset Type (in Advanced analysis mode) adjusts duration estimates based on volatility characteristics:
• Small Cap: Explosive moves, extended trends (+30-40%)
• Biotech / Speculative: Parabolic potential, news-driven (+40%)
• Blue Chip / Large Cap: Baseline, steady trends (0% adjustment)
• Tech Growth: Momentum-driven, longer trends (+20%)
• Dividend / Value: Slower, grinding trends (-20%)
• Cyclical: Macro-driven, variable (±10%)
• Crypto / High Volatility: Parabolic potential (+30%)
Correct configuration improves Statistical accuracy by 15-20%. Using Blue Chip settings on a biotech stock may underestimate trend length (you'll exit too early).
Q: Can I backtest this indicator?
A: Yes! TradingView's Strategy Tester works with this indicator's signals.
To backtest:
1. Note the entry conditions (SuperTrend flip + quality threshold + filters)
2. Create a strategy script using same logic
3. Run Strategy Tester on historical data
Additionally, the indicator includes BUILT-IN duration estimate validation:
• System backtests its own duration estimates
• Shows accuracy metrics in dashboard and duration analysis boxes
• Helps assess reliability on your specific symbol/timeframe
Q: Why does Volume Momentum auto-disable in Scalping mode?
A: Scalping requires ultra-fast entries to catch quick moves. Volume Momentum filter adds friction by requiring volume confirmation before signaling, which can cause missed opportunities in rapid scalping.
Scalping preset is optimized for speed and frequency - the filter is counterproductive for that style. It remains enabled for Day Trading, Swing Trading, and Position Trading presets where patience improves results.
You can manually enable it in Custom mode if desired.
Q: How much historical data do I need for accurate duration estimates?
A:
Minimum: 50-100 bars (indicator will function but duration estimates less reliable)
Recommended: 500+ bars (robust statistical database)
Optimal: 1000+ bars (maximum Statistical accuracy)
More history = more completed trends = better pattern matching = more accurate duration estimates.
New symbols or newly-switched timeframes will have lower Statistical accuracy initially. Allow 2-4 weeks for the system to build historical database.
IMPORTANT DISCLAIMERS
No Guarantee of Profit:
This indicator is an educational tool and does not guarantee any specific trading results. All trading involves substantial risk of loss. Duration estimates are statistical calculations based on historical patterns and are not guarantees of future performance.
Past Performance:
Historical backtest results and Statistical accuracy statistics do not guarantee future performance. Market conditions change constantly. What worked historically may not work in current or future markets.
Not Financial Advice:
This indicator provides technical analysis signals and statistical duration estimates only. It is not financial, investment, or trading advice. Always consult with a qualified financial advisor before making investment decisions.
Risk Warning:
Trading stocks, options, futures, forex, and cryptocurrencies involves significant risk. You can lose all of your invested capital. Never trade with money you cannot afford to lose. Only risk capital you can lose without affecting your lifestyle.
Testing Required:
Always test this indicator on a demo account or with paper trading before risking real capital. Understand how it works in different market conditions. Verify Statistical accuracy on your specific instruments and timeframes before trusting it with real money.
User Responsibility:
You are solely responsible for your trading decisions. The developer assumes no liability for trading losses, incorrect duration estimates, software errors, or any other damages incurred while using this indicator.
Statistical Estimation Limitations:
Trend Duration estimates are statistical estimates based on historical pattern matching. They are NOT guarantees. Actual trend durations may differ significantly from duration estimates due to unforeseen news events, market regime changes, or lack of historical precedent for current conditions.
CREDITS & ACKNOWLEDGMENTS
Methodology Inspiration:
• Mark Minervini - Volatility Contraction Pattern (VCP) concepts and pullback entry techniques
• William O'Neil - Volume analysis principles and CANSLIM institutional buying patterns
• Dan Zanger - Momentum breakout strategies and volatility expansion entries
Technical Components:
• SuperTrend calculation - Classic ATR-based trend indicator (public domain)
• Statistical analysis - Standard median, average, range calculations
• k-Nearest Neighbors - Classic machine learning similarity matching concept
• Multi-timeframe analysis - Standard request.security implementation in Pine Script
For questions, feedback, or support, please comment below or send a private message.
Happy Trading!
[Sextan] Your Indicator Source PINE v5 MTFLevel: 1
NOTE1: As requested, this is a multiple time frame(MTF) version of input signal source, which enable you to backtest any indicator/strategy MTF with "{Sextan} PINEv4 Sextans Backtest Framework". Courtesy of cheatcountry for his request.security() wrapper in PINE v5 to avoid repainting caused by request.security() function.
NOTE2: Many request this indicator template to support PINE v5. Now, here it is .This is ONLY an PINE v5 EXAMPLE on HOW-TO produce a customized "{Sextan} PINEv4 Sextans Backtest Framework" (for bactest framework it does not need to be written by PINE v5)intput signal source, you can define your own indicator in the highlighted area in compliance with the uniform format, which guarantee when you use "Indicator on Indicator" function, it would not produce any error.
I use two simple moving average crossings to produce long and short entry signal with SMA3 and SMA8 in the example.
Background
Backtesting of technical indicators and strategies is the most common way to understand a quantitative strategy. However, the complicated configuration and adaptation work of backtesting many quantitative tools makes many traders who do not understand the code daunted. Moreover, although I have written a lot of strategies, I am still not very satisfied with the backtest configuration and writing efficiency. Therefore, I have been thinking about how to build a backtesting framework that can quickly and easily evaluate the backtesting performance of any indicator with a "long/short entry" indicator, that is, a "simple backtesting tool for dummies". The performance requirements should be stable, and the operation should be simple and convenient. It is best to "copy", "paste", and "a few mouse clicks" to complete the quick backtest and evaluation of a new indicator.
Luckily, I recently realized that TradingView provides an "Indicator on Indicator" feature, which is the perfect foundation for doing "hot swap" backtesting. My basic idea is to use a two-layer design. The first layer is the technical indicator signal source that needs to be embedded, which is only used to provide buy and sell signals of custom strategies; the second layer is the trading system, which is used to receive the output signals of the first layer, and filter the signals according to the agreed specifications. , Take Profit, Stop Loss, draw buy and sell signals and cost lines, define and send custom buy and sell alert messages to mobile phones, social software or trading interfaces. In general, this two-layer design is a flexible combination of "death and alive", which can meet the needs of most traders to quickly evaluate the performance of a certain technical indicator. The first layer here is flexible. Users can insert their own strategy codes according to my template, and they can draw buy and sell signals and output them to the second layer. The second layer is fixed, and the overall framework is solidified to ensure the stability and unity of the trading system. It is convenient to compare different or similar strategies under the same conditions. Finally, all trading signals are drawn on the chart, and the output strategy returns. test report.
The main function:
The first layer: "{Sextan} Your Indicator Source", the script provides a template for personalized strategy input, and the signal and definition interfaces ensure full compatibility with the second layer. Backtesting is performed stably in the backtesting framework of the layer. The first layer of this script is also relatively simple: enter your script in the highlighted custom script area, and after ensuring the final buy and sell signals long = bool condition, short = bool condition, the design of the first layer is considered complete. Input it into the PINE script editor of TradingView, save it and add it to the chart, you can see the pulse sequence in yellow (buy) and purple (sell) on the sub-picture, corresponding to the main picture, you can subjectively judge that the quality of the trading point of the strategy is good Bad.
The second layer: "{Sextan} PINEv4 Sextans Backtest Framework". This script is the standardized trading system strategy execution and alarm, used to generate the final report of the strategy backtest and some key indicators that I have customized that I find useful, such as: winning rate , Odds, Winning Surface, Kelly Ratio, Take Profit and Stop Loss Thresholds, Trading Frequency, etc. are evaluated according to the Kelly formula. To use the second layer, first load it into the TrainingView chart, no markers will appear on the chart, since you have not specified any strategy source signals, click on the gear-shaped setting next to the "{Sextan} PINEv4 Sextans BTFW" header button, you can open the backtest settings, the first item is to select your custom strategy source. Because we have added the strategy source to the chart in the previous step, you can easily find an option "{Sextan} Your Indicator Source: Signal" at the bottom of the list, this is the strategy source input we need, select and confirm , you can see various markers on the main graph, and quickly generate a backtesting profit graph and a list of backtesting reports. You can generate files and download the backtesting reports locally. You can also click the gear on the backtest chart interface to customize some conditions of the backtest, including: initial capital amount, currency type, percentage of each order placed, amount of pyramid additions, commission fees, slippage, etc. configuration. Note: The configuration in the interface dialog overrides the same configuration implemented by the code in the backtest script.
How to output charts:
The first layer: "{Sextan} Your Indicator Source", the output of this script is the pulse value of yellow and purple, yellow +1 means buy, purple -1 means sell.
The second layer: PINEv4 Sextans Backtest Framework". The output of this script is a bit complicated. After all, it is the entire trading system with a lot of information:
1. Blue and red arrows. The blue upward arrow indicates long position, the red downward arrow indicates short position, and the horizontal bar at the end of the purple arrow indicates take profit or stop loss exit.
2. Red and green lines. This is the holding cost line of the strategy, green represents the cost of holding a long position, and red represents the cost of holding a short position. The cost line is a continuous solid line and the price action is relatively close.
3. Green and yellow long take profit and stop loss area and green and yellow long take profit and stop loss fork. Once a long position is held, there is a conditional order for take profit and stop loss. The green horizontal line is the long take profit ratio line, and the yellow is the long stop loss ratio line; the green cross indicates the long take profit price, and the yellow cross indicates the long position. Stop loss price. It's worth noting that the prongs and wires don't necessarily go together. Because of the optimization of the algorithm, for a strong market, the take profit will occur after breaking the take profit line, and the profit will not be taken until the price falls.
4. The purple and red short take profit and stop loss area and the purple red short stop loss fork. Once a short position is held, there will be a take profit and stop loss conditional order, the red is the short take profit ratio line, and the purple is the short stop loss ratio line; the red cross indicates the short take profit price, and the purple cross indicates the short stop loss price.
5. In addition to the above signs, there are also text and numbers indicating the profit and loss values of long and short positions. "L" means long; "S" means short; "XL" means close long; "XS" means close short.
TradingView Strategy Tester Panel:
The overview graph is an intuitive graph that plots the blue (gain) and red (loss) curves of all backtest periods together, and notes: the absolute value and percentage of net profit, the number of all closed positions, the winning percentage, the profit factor, The maximum trading loss, the absolute value and ratio of the average trading profit and loss, and the average number of K-lines held in all trades.
Another is the performance summary. This is to display all long and short statistical indicators of backtesting in the form of a list, such as: net profit, gross profit, Sharpe ratio, maximum position, commission, times of profit and loss, etc.
Finally, the transaction list is a table indexed by the transaction serial number, showing the signal direction, date and time, price, profit and loss, accumulated profit and loss, maximum transaction profit, transaction loss and other values.
Remarks
Finally, I will explain that this is just the beginning of this model. I will continue to optimize the trading system of the second layer. Various optimization feedback and suggestions are welcome. For valuable feedback, I am willing to provide some L4/L5 technical indicators as rewards for free subscription rights.
[Sextan] Your Indicator Source PINE v4 MTFLevel: 1
NOTE1: As requested, this is a multiple time frame(MTF) version of input signal source, which enable you to backtest any indicator/strategy MTF with "{Sextan} PINEv4 Sextans Backtest Framework". Courtesy of cheatcountry for his security() wrapper to avoid repainting caused by security() function.
NOTE2: This is ONLY an EXAMPLE on HOW-TO produce a customized "{Sextan} PINEv4 Sextans Backtest Framework" intput signal source, you can define your own indicator in the highlighted area in compliance with the uniform format, which guarantee when you use "Indicator on Indicator" function, it would not produce any error.
I use two simple moving average crossings to produce long and short entry signal with SMA3 and SMA8 in the example.
Background
Backtesting of technical indicators and strategies is the most common way to understand a quantitative strategy. However, the complicated configuration and adaptation work of backtesting many quantitative tools makes many traders who do not understand the code daunted. Moreover, although I have written a lot of strategies, I am still not very satisfied with the backtest configuration and writing efficiency. Therefore, I have been thinking about how to build a backtesting framework that can quickly and easily evaluate the backtesting performance of any indicator with a "long/short entry" indicator, that is, a "simple backtesting tool for dummies". The performance requirements should be stable, and the operation should be simple and convenient. It is best to "copy", "paste", and "a few mouse clicks" to complete the quick backtest and evaluation of a new indicator.
Luckily, I recently realized that TradingView provides an "Indicator on Indicator" feature, which is the perfect foundation for doing "hot swap" backtesting. My basic idea is to use a two-layer design. The first layer is the technical indicator signal source that needs to be embedded, which is only used to provide buy and sell signals of custom strategies; the second layer is the trading system, which is used to receive the output signals of the first layer, and filter the signals according to the agreed specifications. , Take Profit, Stop Loss, draw buy and sell signals and cost lines, define and send custom buy and sell alert messages to mobile phones, social software or trading interfaces. In general, this two-layer design is a flexible combination of "death and alive", which can meet the needs of most traders to quickly evaluate the performance of a certain technical indicator. The first layer here is flexible. Users can insert their own strategy codes according to my template, and they can draw buy and sell signals and output them to the second layer. The second layer is fixed, and the overall framework is solidified to ensure the stability and unity of the trading system. It is convenient to compare different or similar strategies under the same conditions. Finally, all trading signals are drawn on the chart, and the output strategy returns. test report.
The main function:
The first layer: "{Sextan} Your Indicator Source", the script provides a template for personalized strategy input, and the signal and definition interfaces ensure full compatibility with the second layer. Backtesting is performed stably in the backtesting framework of the layer. The first layer of this script is also relatively simple: enter your script in the highlighted custom script area, and after ensuring the final buy and sell signals long = bool condition, short = bool condition, the design of the first layer is considered complete. Input it into the PINE script editor of TradingView, save it and add it to the chart, you can see the pulse sequence in yellow (buy) and purple (sell) on the sub-picture, corresponding to the main picture, you can subjectively judge that the quality of the trading point of the strategy is good Bad.
The second layer: "{Sextan} PINEv4 Sextans Backtest Framework". This script is the standardized trading system strategy execution and alarm, used to generate the final report of the strategy backtest and some key indicators that I have customized that I find useful, such as: winning rate , Odds, Winning Surface, Kelly Ratio, Take Profit and Stop Loss Thresholds, Trading Frequency, etc. are evaluated according to the Kelly formula. To use the second layer, first load it into the TrainingView chart, no markers will appear on the chart, since you have not specified any strategy source signals, click on the gear-shaped setting next to the "{Sextan} PINEv4 Sextans BTFW" header button, you can open the backtest settings, the first item is to select your custom strategy source. Because we have added the strategy source to the chart in the previous step, you can easily find an option "{Sextan} Your Indicator Source: Signal" at the bottom of the list, this is the strategy source input we need, select and confirm , you can see various markers on the main graph, and quickly generate a backtesting profit graph and a list of backtesting reports. You can generate files and download the backtesting reports locally. You can also click the gear on the backtest chart interface to customize some conditions of the backtest, including: initial capital amount, currency type, percentage of each order placed, amount of pyramid additions, commission fees, slippage, etc. configuration. Note: The configuration in the interface dialog overrides the same configuration implemented by the code in the backtest script.
How to output charts:
The first layer: "{Sextan} Your Indicator Source", the output of this script is the pulse value of yellow and purple, yellow +1 means buy, purple -1 means sell.
The second layer: PINEv4 Sextans Backtest Framework". The output of this script is a bit complicated. After all, it is the entire trading system with a lot of information:
1. Blue and red arrows. The blue upward arrow indicates long position, the red downward arrow indicates short position, and the horizontal bar at the end of the purple arrow indicates take profit or stop loss exit.
2. Red and green lines. This is the holding cost line of the strategy, green represents the cost of holding a long position, and red represents the cost of holding a short position. The cost line is a continuous solid line and the price action is relatively close.
3. Green and yellow long take profit and stop loss area and green and yellow long take profit and stop loss fork. Once a long position is held, there is a conditional order for take profit and stop loss. The green horizontal line is the long take profit ratio line, and the yellow is the long stop loss ratio line; the green cross indicates the long take profit price, and the yellow cross indicates the long position. Stop loss price. It's worth noting that the prongs and wires don't necessarily go together. Because of the optimization of the algorithm, for a strong market, the take profit will occur after breaking the take profit line, and the profit will not be taken until the price falls.
4. The purple and red short take profit and stop loss area and the purple red short stop loss fork. Once a short position is held, there will be a take profit and stop loss conditional order, the red is the short take profit ratio line, and the purple is the short stop loss ratio line; the red cross indicates the short take profit price, and the purple cross indicates the short stop loss price.
5. In addition to the above signs, there are also text and numbers indicating the profit and loss values of long and short positions. "L" means long; "S" means short; "XL" means close long; "XS" means close short.
TradingView Strategy Tester Panel:
The overview graph is an intuitive graph that plots the blue (gain) and red (loss) curves of all backtest periods together, and notes: the absolute value and percentage of net profit, the number of all closed positions, the winning percentage, the profit factor, The maximum trading loss, the absolute value and ratio of the average trading profit and loss, and the average number of K-lines held in all trades.
Another is the performance summary. This is to display all long and short statistical indicators of backtesting in the form of a list, such as: net profit, gross profit, Sharpe ratio, maximum position, commission, times of profit and loss, etc.
Finally, the transaction list is a table indexed by the transaction serial number, showing the signal direction, date and time, price, profit and loss, accumulated profit and loss, maximum transaction profit, transaction loss and other values.
Remarks
Finally, I will explain that this is just the beginning of this model. I will continue to optimize the trading system of the second layer. Various optimization feedback and suggestions are welcome. For valuable feedback, I am willing to provide some L4/L5 technical indicators as rewards for free subscription rights.
[Sextan] Your Indicator Source for PINE v5Level: 1
NOTE: Many request this indicator template to support PINE v5. Now, here it is .This is ONLY an PINE v5 EXAMPLE on HOW-TO produce a customized "{Sextan} PINEv4 Sextans Backtest Framework" (for bactest framework it does not need to be written by PINE v5)intput signal source, you can define your own indicator in the highlighted area in compliance with the uniform format, which guarantee when you use "Indicator on Indicator" function, it would not produce any error.
I use two simple moving average crossings to produce long and short entry signal with SMA3 and SMA8 in the example.
Background
Backtesting of technical indicators and strategies is the most common way to understand a quantitative strategy. However, the complicated configuration and adaptation work of backtesting many quantitative tools makes many traders who do not understand the code daunted. Moreover, although I have written a lot of strategies, I am still not very satisfied with the backtest configuration and writing efficiency. Therefore, I have been thinking about how to build a backtesting framework that can quickly and easily evaluate the backtesting performance of any indicator with a "long/short entry" indicator, that is, a "simple backtesting tool for dummies". The performance requirements should be stable, and the operation should be simple and convenient. It is best to "copy", "paste", and "a few mouse clicks" to complete the quick backtest and evaluation of a new indicator.
Luckily, I recently realized that TradingView provides an "Indicator on Indicator" feature, which is the perfect foundation for doing "hot swap" backtesting. My basic idea is to use a two-layer design. The first layer is the technical indicator signal source that needs to be embedded, which is only used to provide buy and sell signals of custom strategies; the second layer is the trading system, which is used to receive the output signals of the first layer, and filter the signals according to the agreed specifications. , Take Profit, Stop Loss, draw buy and sell signals and cost lines, define and send custom buy and sell alert messages to mobile phones, social software or trading interfaces. In general, this two-layer design is a flexible combination of "death and alive", which can meet the needs of most traders to quickly evaluate the performance of a certain technical indicator. The first layer here is flexible. Users can insert their own strategy codes according to my template, and they can draw buy and sell signals and output them to the second layer. The second layer is fixed, and the overall framework is solidified to ensure the stability and unity of the trading system. It is convenient to compare different or similar strategies under the same conditions. Finally, all trading signals are drawn on the chart, and the output strategy returns. test report.
The main function:
The first layer: "{Sextan} Your Indicator Source", the script provides a template for personalized strategy input, and the signal and definition interfaces ensure full compatibility with the second layer. Backtesting is performed stably in the backtesting framework of the layer. The first layer of this script is also relatively simple: enter your script in the highlighted custom script area, and after ensuring the final buy and sell signals long = bool condition, short = bool condition, the design of the first layer is considered complete. Input it into the PINE script editor of TradingView, save it and add it to the chart, you can see the pulse sequence in yellow (buy) and purple (sell) on the sub-picture, corresponding to the main picture, you can subjectively judge that the quality of the trading point of the strategy is good Bad.
The second layer: "{Sextan} PINEv4 Sextans Backtest Framework". This script is the standardized trading system strategy execution and alarm, used to generate the final report of the strategy backtest and some key indicators that I have customized that I find useful, such as: winning rate , Odds, Winning Surface, Kelly Ratio, Take Profit and Stop Loss Thresholds, Trading Frequency, etc. are evaluated according to the Kelly formula. To use the second layer, first load it into the TrainingView chart, no markers will appear on the chart, since you have not specified any strategy source signals, click on the gear-shaped setting next to the "{Sextan} PINEv4 Sextans BTFW" header button, you can open the backtest settings, the first item is to select your custom strategy source. Because we have added the strategy source to the chart in the previous step, you can easily find an option "{Sextan} Your Indicator Source: Signal" at the bottom of the list, this is the strategy source input we need, select and confirm , you can see various markers on the main graph, and quickly generate a backtesting profit graph and a list of backtesting reports. You can generate files and download the backtesting reports locally. You can also click the gear on the backtest chart interface to customize some conditions of the backtest, including: initial capital amount, currency type, percentage of each order placed, amount of pyramid additions, commission fees, slippage, etc. configuration. Note: The configuration in the interface dialog overrides the same configuration implemented by the code in the backtest script.
How to output charts:
The first layer: "{Sextan} Your Indicator Source", the output of this script is the pulse value of yellow and purple, yellow +1 means buy, purple -1 means sell.
The second layer: PINEv4 Sextans Backtest Framework". The output of this script is a bit complicated. After all, it is the entire trading system with a lot of information:
1. Blue and red arrows. The blue upward arrow indicates long position, the red downward arrow indicates short position, and the horizontal bar at the end of the purple arrow indicates take profit or stop loss exit.
2. Red and green lines. This is the holding cost line of the strategy, green represents the cost of holding a long position, and red represents the cost of holding a short position. The cost line is a continuous solid line and the price action is relatively close.
3. Green and yellow long take profit and stop loss area and green and yellow long take profit and stop loss fork. Once a long position is held, there is a conditional order for take profit and stop loss. The green horizontal line is the long take profit ratio line, and the yellow is the long stop loss ratio line; the green cross indicates the long take profit price, and the yellow cross indicates the long position. Stop loss price. It's worth noting that the prongs and wires don't necessarily go together. Because of the optimization of the algorithm, for a strong market, the take profit will occur after breaking the take profit line, and the profit will not be taken until the price falls.
4. The purple and red short take profit and stop loss area and the purple red short stop loss fork. Once a short position is held, there will be a take profit and stop loss conditional order, the red is the short take profit ratio line, and the purple is the short stop loss ratio line; the red cross indicates the short take profit price, and the purple cross indicates the short stop loss price.
5. In addition to the above signs, there are also text and numbers indicating the profit and loss values of long and short positions. "L" means long; "S" means short; "XL" means close long; "XS" means close short.
TradingView Strategy Tester Panel:
The overview graph is an intuitive graph that plots the blue (gain) and red (loss) curves of all backtest periods together, and notes: the absolute value and percentage of net profit, the number of all closed positions, the winning percentage, the profit factor, The maximum trading loss, the absolute value and ratio of the average trading profit and loss, and the average number of K-lines held in all trades.
Another is the performance summary. This is to display all long and short statistical indicators of backtesting in the form of a list, such as: net profit, gross profit, Sharpe ratio, maximum position, commission, times of profit and loss, etc.
Finally, the transaction list is a table indexed by the transaction serial number, showing the signal direction, date and time, price, profit and loss, accumulated profit and loss, maximum transaction profit, transaction loss and other values.
Remarks
Finally, I will explain that this is just the beginning of this model. I will continue to optimize the trading system of the second layer. Various optimization feedback and suggestions are welcome. For valuable feedback, I am willing to provide some L4/L5 technical indicators as rewards for free subscription rights.
Intraday Session Levels: Pre-Mkt, 5m, 15m (Replay/Toggle/Labels)Intraday Session Levels: Pre-Mkt, 5m, 15m (Replay/Toggle/Labels)
Version v1.0
Live session levels for every trader!
This indicator automatically tracks and draws the most actionable intraday levels as they develop—live in real-time and fully compatible with TradingView’s bar replay and backtesting.
How it works:
Pre-Market High & Low:
Levels appear and update live as soon as the pre-market session starts (4:00am ET), then “freeze” at the official open (9:30am ET) and remain visible for the rest of the day.
First 5-Minute Candle High/Low:
Drawn instantly after the first 5-minute candle (9:30–9:35am ET) completes.
First 15-Minute Candle High/Low:
Drawn right after the first 15-minute candle (9:30–9:45am ET) completes.
Labels on every line
Each level is clearly labeled on your chart (“PreMkt High”, “5m Low”, “15m High”, etc).
Perfect for backtesting:
All levels display exactly as they would have appeared in real time, making this indicator fully bar replay and historical test compatible.
Flexible ON/OFF toggles:
Instantly show or hide Pre-Mkt, 5m, and 15m levels via the settings panel.
Why use it?
Identify support/resistance and key reaction zones intraday
Fade or break the opening range with confidence
Backtest your strategies with accurate historical context
Reduce chart clutter with customizable, minimal visuals
Whether you’re a scalper, day trader, or backtest enthusiast, this tool keeps your charts focused and your edge sharp.
Developed by
Absorption DetectorABSORPTION DETECTOR -
The Absorption Detector identifies institutional order flow by detecting "absorption" patterns where smart money quietly accumulates or distributes positions by absorbing retail order flow. This creates high-probability support and resistance zones for trading. This is an approximation only and does not read any footprint data.
WHAT IS ABSORPTION?
Absorption occurs when institutions take the opposite side of retail trades, creating specific candlestick patterns with high volume and significant wicks. The indicator identifies two main patterns:
SELLING ABSORPTION (P-Pattern): Red zones above candles where institutions sell into retail buying pressure, creating resistance levels. Look for high volume candles with large upper wicks that close in the lower half.
BUYING ABSORPTION (B-Pattern): Green zones below candles where institutions buy from retail selling pressure, creating support levels. Look for high volume candles with large lower wicks that close in the upper half.
KEY FEATURES
- Automatic detection of institutional absorption patterns
- Dynamic support and resistance zone creation
- Customizable styling for all visual elements
- Historic zone display for backtesting analysis
- Strength-based filtering to show only high-probability setups
- Real-time alerts for new absorption patterns
- Professional info panel with key statistics
- Multi-timeframe compatibility
MAIN SETTINGS
Volume Threshold (1.2): Minimum volume surge required compared to average. Higher values = fewer but stronger signals.
Minimum Volume (2500): Absolute volume floor to prevent signals during low-volume periods.
Min Wick Size (0.2): Minimum wick size as ATR multiple. Ensures significant rejection occurred.
Minimum Strength (1.5): Combined volume and wick strength filter. Higher values = higher quality signals.
Show Historic Zones (OFF): Enable to see all historical zones for backtesting. Disable for better performance.
Zone Extension (20): How many bars to project zones forward for anticipating future reactions.
TRADING APPROACH
ZONE REACTION STRATEGY: Wait for price to approach absorption zones and trade the bounce or rejection. Use the zones as dynamic support and resistance levels.
BREAKOUT STRATEGY: Trade decisive breaks of strong absorption zones with proper risk management. Failed zones often lead to strong moves.
CONFLUENCE TRADING: Combine absorption zones with other technical analysis for highest probability setups. Look for alignment with trend lines, Fibonacci levels, and key support/resistance.
RISK MANAGEMENT: Always use stop losses beyond the absorption zones. Target minimum 1:2 risk-reward ratios. Position size appropriately based on zone strength.
OPTIMIZATION GUIDE
For Conservative Trading (fewer, higher quality signals):
- Volume Threshold: 1.5
- Minimum Strength: 2.0
- Min Wick Size: 0.3
For Aggressive Trading (more signals, requires careful filtering):
- Volume Threshold: 1.1
- Minimum Strength: 1.0
- Min Wick Size: 0.15
BEST PRACTICES
Markets: Works best on liquid instruments with good volume - major forex pairs, popular stocks, liquid futures, and established cryptocurrencies.
Timeframes: Effective on all timeframes from 1-minute scalping to daily swing trading. Adjust settings based on your timeframe and trading style.
Confirmation: Never trade absorption signals in isolation. Always combine with trend analysis, market structure, and proper risk management.
Session Timing: Be aware of market sessions and avoid trading during low liquidity periods or major news events.
Backtesting: Use the historic zones feature to validate performance on your chosen market and timeframe before live trading.
CUSTOMIZATION
The indicator offers complete visual customization including zone colors, border styles, label appearances, and info panel positioning. All colors can be adapted to match your chart theme and personal preferences.
Alert system provides both basic and custom message alerts for real-time notifications of new absorption patterns.
PERFORMANCE NOTES
Default settings are optimized for most markets and timeframes. For best performance on older charts, keep "Show Historic Zones" disabled unless specifically backtesting.
The indicator maintains excellent performance even with extensive historical analysis enabled, handling up to 500 zones and 100 labels for comprehensive backtesting.
Machine Learning | Adaptive Trend Signals [Bitwardex]⚙️🧠Machine Learning | Adaptive Trend Signals
🔷Overview
Machine Learning | Adaptive Trend Signals is a Pine Script™ v6 indicator designed to visualize market trends and generate signals through a combination of volatility clustering, Gaussian smoothing, and adaptive trend calculations. Built as an overlay indicator, it integrates advanced techniques inspired by machine learning concepts, such as K-Means clustering, to adapt to changing market conditions. The script is highly customizable, includes a backtesting module, and supports alert conditions, making it suitable for traders exploring trend-based strategies and developers studying volatility-driven indicator design.
🔷Functionality
The indicator performs the following core functions:
• Volatility Clustering: Uses K-Means clustering to categorize market volatility into high, medium, and low states, adjusting trend sensitivity accordingly.
• Trend Calculation: Computes adaptive trend lines (SmartTrend) based on volatility-adjusted standard deviation, smoothed RSI, and ADX filters.
• Signal Generation: Identifies potential buy and sell points through trend line crossovers and directional confirmation.
• Backtesting Module: Tracks trade outcomes based on the SmartTrend3 value, displaying win rate and total trades.
• Visualization: Plots trend lines with gradient colors and optional signal markers (bullish 🐮 and bearish 🐻).
• Alerts: Provides configurable alerts for trend shifts and volatility state changes.
🔷Technical Methodology
Volatility Clustering with K-Means
The indicator employs a K-Means clustering algorithm to classify market volatility, measured via the Average True Range (ATR), into three distinct clusters:
• Data Collection: Gathers ATR values over a user-defined training period (default: 100 bars).
• Centroid Initialization: Sets initial centroids at the highest, lowest, and midpoint ATR values within the training period.
• Iterative Clustering: Assigns ATR data points to the nearest centroid, recalculates centroid means, and repeats until convergence.
• Dynamic Adjustment: Assigns a volatility state (high, medium, or low) based on the closest centroid, adjusting the trend factor (e.g., tighter for high volatility, wider for low volatility).
This approach allows the indicator to adapt its sensitivity to varying market conditions, providing a data-driven foundation for trend calculations.
🔷Gaussian Smoothing
To enhance signal clarity and reduce noise, the indicator applies Gaussian kernel smoothing to:
• RSI: Smooths the Relative Strength Index (calculated from OHLC4) to filter short-term fluctuations.
• SmartTrend: Smooths the primary trend line for a more stable output.
The Gaussian kernel uses a sigma value derived from the user-defined smoothing length, ensuring mathematically consistent noise reduction.
🔷SmartTrend Calculation
The pineSmartTrend function is the core of the indicator, producing three trend lines:
• SmartTrend: The primary trend line, calculated using a volatility-adjusted standard deviation, smoothed RSI, and ADX conditions.
• SmartTrend2: A secondary trend line with a wider factor (base factor * 1.382) for signal confirmation.
SmartTrend3: The average of SmartTrend and SmartTrend2, used for plotting and backtesting.
Key components of the calculation include:
• Dynamic Standard Deviation: Scales based on ATR relative to its 50-period smoothed average, with multipliers (1.0 to 1.4) applied according to volatility thresholds.
• RSI and ADX Filters: Requires RSI > 50 for bullish trends or < 50 for bearish trends, alongside ADX > 15 and rising to confirm trend strength.
Volatility-Adjusted Bands: Constructs upper and lower bands around price action, adjusted by the volatility cluster’s dynamic factor.
🔷Signal Generation
The generate_signals function generates signals as follows:
• Buy Signal: Triggered when SmartTrend crosses above SmartTrend2 and the price is above SmartTrend, with directional confirmation.
• Sell Signal: Triggered when SmartTrend crosses below SmartTrend2 and the price is below SmartTrend, with directional confirmation.
Directional Logic: Tracks trend direction to filter out conflicting signals, ensuring alignment with the broader market context.
Signals are visualized as small circles with bullish (🐮) or bearish (🐻) emojis, with an option to toggle visibility.
🔷Backtesting
The get_backtest function evaluates signal outcomes using the SmartTrend3 value (rather than closing prices) to align with the trend-based methodology.
It tracks:
• Total Trades: Counts completed long and short trades.
• Win Rate: Calculates the percentage of trades where SmartTrend3 moves favorably (higher for longs, lower for shorts).
Position Management: Closes opposite positions before opening new ones, simulating a single-position trading system.
Results are displayed in a table at the top-right of the chart, showing win rate and total trades. Note that backtest results reflect the indicator’s internal logic and should not be interpreted as predictive of real-world performance.
🔷Visualization and Alerts
• Trend Lines: SmartTrend3 is plotted with gradient colors reflecting trend direction and volatility cluster, accompanied by a secondary line for visual clarity.
• Signal Markers: Optional buy/sell signals are plotted as small circles with customizable colors.
• Alerts: Supports alerts for:
• Bullish and bearish trend shifts (confirmed on bar close).
Transitions to high, medium, or low volatility states.
🔷Input Parameters
• ATR Length (default: 14): Period for ATR calculation, used in volatility clustering.
• Period (default: 21): Common period for RSI, ADX, and standard deviation calculations.
• Base SmartTrend Factor (default: 2.0): Base multiplier for volatility-adjusted bands.
• SmartTrend Smoothing Length (default: 10): Length for Gaussian smoothing of the trend line.
• Show Buy/Sell Signals? (default: true): Enables/disables signal markers.
• Bullish/Bearish Color: Customizable colors for trend lines and signals.
🔷Usage Instructions
• Apply to Chart: Add the indicator to any TradingView chart.
• Configure Inputs: Adjust parameters to align with your trading style or market conditions (e.g., shorter ATR length for faster markets).
• Interpret Output:
• Trend Lines: Use SmartTrend3’s direction and color to gauge market bias.
• Signals: Monitor bullish (🐮) and bearish (🐻) markers for potential entry/exit points.
• Backtest Table: Review win rate and total trades to understand the indicator’s behavior in historical data.
• Set Alerts: Configure alerts for trend shifts or volatility changes to support manual or automated trading workflows.
• Combine with Analysis: Use the indicator alongside other tools or market context, as it is designed to complement, not replace, comprehensive analysis.
🔷Technical Notes
• Data Requirements: Requires at least 100 bars for accurate volatility clustering. Ensure sufficient historical data is loaded.
• Market Suitability: The indicator is designed for trend detection and may perform differently in ranging or volatile markets due to its reliance on RSI and ADX filters.
• Backtesting Scope: The backtest module uses SmartTrend3 values, which may differ from price-based outcomes. Results are for informational purposes only.
• Computational Intensity: The K-Means clustering and Gaussian smoothing may increase processing time on lower timeframes or with large datasets.
🔷For Developers
The script is modular, well-commented, encouraging reuse and modification with proper attribution.
Key functions include:
• gaussianSmooth: Applies Gaussian kernel smoothing to any data series.
• pineSmartTrend: Computes adaptive trend lines with volatility and momentum filters.
• getDynamicFactor: Adjusts trend sensitivity based on volatility clusters.
• get_backtest: Evaluates signal performance using SmartTrend3.
Developers can extend these functions for custom indicators or strategies, leveraging the volatility clustering and smoothing methodologies. The K-Means implementation is particularly useful for adaptive volatility analysis.
🔷Limitations
• The indicator is not predictive and should be used as part of a broader trading strategy.
• Performance varies by market, timeframe, and parameter settings, requiring user experimentation.
• Backtest results are based on historical data and internal logic, not real-world trading conditions.
• Volatility clustering assumes sufficient historical data; incomplete data may affect accuracy.
🔷Acknowledgments
Developed by Bitwardex, inspired by machine learning concepts and adaptive trading methodologies. Community feedback is welcome via TradingView’s platform.
🔷 Risk Disclaimer
Trading involves significant risks, and most traders may incur losses. Bitwardex AI Algo is provided for informational and educational purposes only and does not constitute financial advice or a recommendation to buy or sell any financial instrument . The signals, metrics, and features are tools for analysis and do not guarantee profits or specific outcomes. Past performance is not indicative of future results. Always conduct your own due diligence and consult a financial advisor before making trading decisions.
Relative Strength Index Custom [BRTLab]RSI Custom — Strategy-Oriented RSI with Multi-Timeframe Precision
The Relative Strength Index Custom is designed with a focus on developing robust trading strategies. This powerful indicator leverages the logic of calculating RSI on higher timeframes (HTFs) while allowing traders to execute trades on lower timeframes (LTFs). Its unique ability to extract accurate RSI data from higher timeframes without waiting for those candles to close provides a real-time advantage, eliminating the "look-ahead" bias that often
distorts backtest results.
Key Features
Multi-Timeframe RSI for Strategy Development
This indicator stands out by allowing you to calculate RSI on higher timeframes, even while operating on lower timeframe charts. This means you can, for example, calculate RSI on the 1-hour or daily chart and execute trades on a 1-minute chart without needing to wait for the higher timeframe candle to close. This feature is crucial for strategy-building as it eliminates backtesting issues where data from the future is inadvertently used, providing more reliable backtest results.
Example: On a 15-minute chart, you can use the 1-hour RSI to open positions based on higher timeframe momentum, but you get this signal in real-time, improving timing and accuracy.
Accurate Data Extraction from Higher Timeframes
The indicator's custom logic ensures that accurate RSI data is retrieved from higher timeframes, providing an edge by delivering timely information for lower timeframe decisions. This prevents delayed signals often encountered when waiting for higher timeframe candles to close, which is crucial for high-frequency and intraday traders looking for precise entries based on multi-timeframe data.
Customizable RSI Settings for Strategy Tuning
The script offers full customization of the RSI, including length and source price (close, open, high, or low), allowing traders to tailor the RSI to fit specific trading strategies. These settings are housed in the "RSI Settings" section, enabling precise adjustments that align with your overall strategy.
No Future-Looking in Backtests
Traditional backtests often suffer from "future-looking" bias, where calculations unintentionally use data from candles that haven’t yet closed. This indicator is specifically designed to prevent such issues by calculating RSI values in real-time. This is particularly important when creating and testing strategies, as it ensures that the conditions under which trades would have been made are accurately represented in historical tests.
RSI-Based Moving Average for Additional Filtering
The built-in moving average (MA) based on RSI values helps filter out noise, making it easier to identify genuine trend shifts. This is particularly useful in strategies where moving average crossovers act as additional confirmation for trade entries and exits.
Overbought and Oversold Zone Detection
Visual gradient fills on the RSI chart help traders identify overbought and oversold zones (above 70 and below 30, respectively). These zones are crucial for timing reversal trades or confirming momentum-based strategies.
How This Indicator Enhances Your Strategy
Increased Accuracy for Intraday Strategies
For traders who operate on lower timeframes, using higher timeframe RSI data gives a broader perspective of market momentum while still maintaining precision for short-term trade entries. The real-time data extraction means you don't need to wait for HTF candles to close, which can dramatically improve your entry timing.
Strategic Edge in Backtesting
One of the greatest challenges in backtesting strategies is avoiding future-looking bias. This indicator is built to overcome this by using real-time multi-timeframe data, ensuring the accuracy and reliability of historical strategy testing, which provides confidence in your strategies when applied to live markets.
Advanced Filtering for Trend Strategies
By combining the RSI values with a customizable moving average (MA) and visualizing key momentum zones with overbought/oversold fills, the indicator allows for more refined trade filters. This ensures that signals generated by your strategy are based on solid momentum data and not short-term price fluctuations.
AadTrend [InvestorUnknown]The AadTrend indicator is an experimental trading tool that combines a user-selected moving average with the Average Absolute Deviation (AAD) from this moving average. This combination works similarly to the Supertrend indicator but offers additional flexibility and insights. In addition to generating Long and Short signals, the AadTrend indicator identifies RISK-ON and RISK-OFF states for each trade direction, highlighting areas where taking on more risk may be considered.
Core Concepts and Features
Moving Average (User-Selected Type)
The indicator allows users to select from various types of moving averages to suit different trading styles and market conditions:
Simple Moving Average (SMA)
Exponential Moving Average (EMA)
Hull Moving Average (HMA)
Double Exponential Moving Average (DEMA)
Triple Exponential Moving Average (TEMA)
Relative Moving Average (RMA)
Fractal Adaptive Moving Average (FRAMA)
Average Absolute Deviation (AAD)
The Average Absolute Deviation measures the average distance between each data point and the mean, providing a robust estimation of volatility.
aad(series float src, simple int length, simple string avg_type) =>
avg = // Moving average as selected by the user
abs_deviations = math.abs(src - avg)
ta.sma(abs_deviations, length)
This provides a volatility measure that adapts to recent market conditions.
Combining Moving Average and AAD
The indicator creates upper and lower bands around the moving average using the AAD, similar to how the Supertrend indicator uses Average True Range (ATR) for its bands.
AadTrend(series float src, simple int length, simple float aad_mult, simple string avg_type) =>
// Calculate AAD (volatility measure)
aad_value = aad(src, length, avg_type)
// Calculate the AAD-based moving average by scaling the price data with AAD
avg = switch avg_type
"SMA" => ta.sma(src, length)
"EMA" => ta.ema(src, length)
"HMA" => ta.hma(src, length)
"DEMA" => ta.dema(src, length)
"TEMA" => ta.tema(src, length)
"RMA" => ta.rma(src, length)
"FRAMA" => ta.frama(src, length)
avg_p = avg + (aad_value * aad_mult)
avg_m = avg - (aad_value * aad_mult)
var direction = 0
if ta.crossover(src, avg_p)
direction := 1
else if ta.crossunder(src, avg_m)
direction := -1
A chart displaying the moving average with upper and lower AAD bands enveloping the price action.
Signals and Trade States
1. Long and Short Signals
Long Signal: Generated when the price crosses above the upper AAD band,
Short Signal: Generated when the price crosses below the lower AAD band.
2. RISK-ON and RISK-OFF States
These states provide additional insight into the strength of the current trend and potential opportunities for taking on more risk.
RISK-ON Long: When the price moves significantly above the upper AAD band after a Long signal.
RISK-OFF Long: When the price moves back below the upper AAD band, suggesting caution.
RISK-ON Short: When the price moves significantly below the lower AAD band after a Short signal.
RISK-OFF Short: When the price moves back above the lower AAD band.
Highlighted areas on the chart representing RISK-ON and RISK-OFF zones for both Long and Short positions.
A chart showing the filled areas corresponding to trend directions and RISK-ON zones
Backtesting and Performance Metrics
While the AadTrend indicator focuses on generating signals and highlighting risk areas, it can be integrated with backtesting frameworks to evaluate performance over historical data.
Integration with Backtest Library:
import InvestorUnknown/BacktestLibrary/1 as backtestlib
Customization and Calibration
1. Importance of Calibration
Default Settings Are Experimental: The default parameters are not optimized for any specific market condition or asset.
User Calibration: Traders should adjust the length, aad_mult, and avg_type parameters to align the indicator with their trading strategy and the characteristics of the asset being analyzed.
2. Factors to Consider
Market Volatility: Higher volatility may require adjustments to the aad_mult to avoid false signals.
Trading Style: Short-term traders might prefer faster-moving averages like EMA or HMA, while long-term traders might opt for SMA or FRAMA.
Alerts and Notifications
The AadTrend indicator includes built-in alert conditions to notify traders of significant market events:
Long and Short Alerts:
alertcondition(long_alert, "LONG (AadTrend)", "AadTrend flipped ⬆LONG⬆")
alertcondition(short_alert, "SHORT (AadTrend)", "AadTrend flipped ⬇Short⬇")
RISK-ON and RISK-OFF Alerts:
alertcondition(risk_on_long, "RISK-ON LONG (AadTrend)", "RISK-ON LONG (AadTrend)")
alertcondition(risk_off_long, "RISK-OFF LONG (AadTrend)", "RISK-OFF LONG (AadTrend)")
alertcondition(risk_on_short, "RISK-ON SHORT (AadTrend)", "RISK-ON SHORT (AadTrend)")
alertcondition(risk_off_short, "RISK-OFF SHORT (AadTrend)", "RISK-OFF SHORT (AadTrend)")
Important Notes and Disclaimer
Experimental Nature: The AadTrend indicator is experimental and should be used with caution.
No Guaranteed Performance: Past performance is not indicative of future results. Backtesting results may not reflect real trading conditions.
User Responsibility: Traders and investors should thoroughly test and calibrate the indicator settings before applying it to live trading.
Risk Management: Always use proper risk management techniques, including stop-loss orders and position sizing.
ORB Algo | Flux Charts💎 GENERAL OVERVIEW
Introducing our new ORB Algo indicator! ORB stands for "Opening Range Breakout" which is a common trading strategy. The indicator can analyze the market trend in the current session and give "Buy / Sell", "Take Profit" and "Stop Loss" signals. For more information about the analyzing process of the indicator, you can read "How Does It Work ?" section of the description.
Features of the new ORB Algo indicator :
Buy & Sell Signals
Up To 3 Take Profit Signals
Stop-Loss Signals
Alerts for Buy / Sell, Take-Profit and Stop-Loss
Customizable Algoritm
Session Dashboard
Backtesting Dashboard
📌 HOW DOES IT WORK ?
This indicator works best in 1-minute timeframe. The idea is that the trend of the current session can be forecasted by analyzing the market for a while after the session starts. However, each market has it's own dynamics and the algorithm will need fine-tuning to get the best performance possible. So, we've implemented a "Backtesting Dashboard" that shows the past performance of the algorithm in the current ticker with your current settings. Always keep in mind that past performance does not guarantee future results.
Here are the steps of the algorithm explained briefly :
1. The algorithm follows and analyzes the first 30 minutes (can be adjusted) of the session.
2. Then, algorithm checks for breakouts of the opening range's high or low.
3. If a breakout happens in a bullish or a bearish direction, the algorithm will now check for retests of the breakout. Depending on the sensitivity setting, there must be 0 / 1 / 2 / 3 failed retests for the breakout to be considered as reliable.
4. If the breakout is reliable, the algorithm will give an entry signal.
5. After the position entry, algorithm will now wait for Take-Profit or Stop-Loss zones and signal if any of them occur.
If you wonder how does the indicator find Take-Profit & Stop-Loss zones, you can check the "Settings" section of the description.
🚩UNIQUENESS
While there are indicators that show the opening range of the session, they come short with features like indicating breakouts, entries, and Take-Profit & Stop-Loss zones. We are also aware of that different stock markets have different dynamics, and tuning the algorithm for different markets is really important for better results, so we decided to make the algorithm fully customizable. Besides all that, our indicator contains a detailed backtesting dashboard, so you can see past performance of the algorithm in the current ticker. While past performance does not yield any guarantee for future results, we believe that a backtesting dashboard is necessary for tuning the algorithm. Another strength of this indicator is that there are multiple options for detection of Take-Profit and Stop-Loss zones, which the trader can select one of their liking.
⚙️SETTINGS
Keep in mind that best chart timeframe for this indicator to work is the 1-minute timeframe.
TP = Take-Profit
SL = Stop-Loss
EMA = Exponential Moving Average
OR = Opening Range
ATR = Average True Range
1. Algorithm
ORB Timeframe -> This setting determines the timeframe that the algorithm will analyze the market after a new session begins before giving any signals. It's important to experiment with this setting and find the best option that suits the current ticker for the best performance. More volatile stocks will often require this setting to be larger, while more stabilized stocks may have this setting shorter.
Sensitivity -> This setting determines how much failed retests are needed to take a position entry. Higher senstivity means that less retests are needed to consider the breakout as reliable. If you think that the current ticker makes strong movements in a bullish & bearish direction after a breakout, you should set this setting higher. If you think the opposite, meaning that the ticker does not decide the trend right after a breakout, this setting show be lower.
(High = 0 Retests, Medium = 1 Retest, Low = 2 Retests, Lowest = 3 Retests)
Breakout Condition -> The condition for the algorithm to detect breakouts.
Close = Bar needs to close higher than the OR High Line in a bullish breakout, or lower than the OR Low Line in a bearish breakout. EMA = The EMA of the bar must be higher / lower than OR Lines instead of the close price.
TP Method -> The method for the algorithm to use when determining TP zones.
Dynamic = This TP method essentially tries to find the bar that price starts declining the current trend and going to the other direction, and puts a TP zone there. To achieve this, it uses an EMA line, and when the close price of a bar crosses the EMA line, It's a TP spot.
ATR = In this TP method, instead of a dynamic approach the TP zones are pre-determined using the ATR of the entry bar. This option is generally for traders who just want to know their TP spots beforehand while trading. Selecting this option will also show TP zones at the ORB Dashboard.
"Dynamic" option generally performs better, while the "ATR" method is safer to use.
EMA Length -> This setting determines the length of the EMA line used in "Dynamic TP method" and "EMA Breakout Condition". This is completely up to the trader's choice, though the default option should generally perform well. You might want to experiment with this setting and find the optimal length for the current ticker.
Stop-Loss -> Algorithm will place the Stop-Loss zone using setting.
Safer = The SL zone will be placed closer to the OR High for a bullish entry, and closer to the OR Low for a bearish entry.
Balanced = The SL zone will be placed in the center of OR High & OR Low
Risky = The SL zone will be placed closer to the OR Low for a bullish entry, and closer to the OR High for a bearish entry.
Adaptive SL -> This option only takes effect if the first TP zone is hit.
Enabled = After the 1st TP zone is hit, the SL zone will be moved to the entry price, essentially making the position risk-free.
Disabled = The SL zone will never change.
2. ORB Dashboard
ORB Dashboard shows the information about the current session.
3. ORB Backtesting
ORB Backtesting Dashboard allows you to see past performance of the algorithm in the current ticker with current settings.
Total amount of days that can be backtested depends on your TV subscription.
Backtesting Exit Ratios -> You can select how much of percent your entry will be closed at any TP zone while backtesting. For example, %90, %5, %5 means that %90 of the position will be closed at the first TP zone, %5 of it will be closed at the 2nd TP zone, and %5 of it will be closed at the last TP zone.
MSTY-WNTR Rebalancing SignalMSTY-WNTR Rebalancing Signal
## Overview
The **MSTY-WNTR Rebalancing Signal** is a custom TradingView indicator designed to help investors dynamically allocate between two YieldMax ETFs: **MSTY** (YieldMax MSTR Option Income Strategy ETF) and **WNTR** (YieldMax Short MSTR Option Income Strategy ETF). These ETFs are tied to MicroStrategy (MSTR) stock, which is heavily influenced by Bitcoin's price due to MSTR's significant Bitcoin holdings.
MSTY benefits from upward movements in MSTR (and thus Bitcoin) through a covered call strategy that generates income but caps upside potential. WNTR, on the other hand, provides inverse exposure, profiting from MSTR declines but losing in rallies. This indicator uses Bitcoin's momentum and MSTR's relative strength to signal when to hold MSTY (bullish phases), WNTR (bearish phases), or stay neutral, aiming to optimize returns by switching allocations at key turning points.
Inspired by strategies discussed in crypto communities (e.g., X posts analyzing MSTR-linked ETFs), this indicator promotes an active rebalancing approach over a "set and forget" buy-and-hold strategy. In simulated backtests over the past 12 months (as of August 4, 2025), the optimized version has shown potential to outperform holding 100% MSTY or 100% WNTR alone, with an illustrative APY of ~125% vs. ~6% for MSTY and ~-15% for WNTR in one scenario.
**Important Disclaimer**: This is not financial advice. Past performance does not guarantee future results. Always consult a financial advisor. Trading involves risk, and you could lose money. The indicator is for educational and informational purposes only.
## Key Features
- **Momentum-Based Signals**: Uses a Simple Moving Average (SMA) on Bitcoin's price to detect bullish (price > SMA) or bearish (price < SMA) trends.
- **RSI Confirmation**: Incorporates MSTR's Relative Strength Index (RSI) to filter signals, avoiding overbought conditions for MSTY and oversold for WNTR.
- **Visual Cues**:
- Green upward triangle for "Hold MSTY".
- Red downward triangle for "Hold WNTR".
- Yellow cross for "Switch" signals.
- Background color: Green for MSTY, red for WNTR.
- **Information Panel**: A table in the top-right corner displays real-time data: BTC Price, SMA value, MSTR RSI, and current Allocation (MSTY, WNTR, or Neutral).
- **Alerts**: Configurable alerts for holding MSTY, holding WNTR, or switching.
- **Optimized Parameters**: Defaults are tuned (SMA: 10 days, RSI: 15 periods, Overbought: 80, Oversold: 20) based on simulations to reduce whipsaws and capture trends effectively.
## How It Works
The indicator's logic is straightforward yet effective for volatile assets like Bitcoin and MSTR:
1. **Primary Trigger (Bitcoin Momentum)**:
- Calculate the SMA of Bitcoin's closing price (default: 10-day).
- Bullish: Current BTC price > SMA → Potential MSTY hold.
- Bearish: Current BTC price < SMA → Potential WNTR hold.
2. **Secondary Filter (MSTR RSI Confirmation)**:
- Compute RSI on MSTR stock (default: 15-period).
- For bullish signals: If RSI > Overbought (80), signal Neutral (avoid overextended rallies).
- For bearish signals: If RSI < Oversold (20), signal Neutral (avoid capitulation bottoms).
3. **Allocation Rules**:
- Hold 100% MSTY if bullish and not overbought.
- Hold 100% WNTR if bearish and not oversold.
- Neutral otherwise (e.g., during choppy or extreme markets) – consider holding cash or avoiding trades.
4. **Rebalancing**:
- Switch signals trigger when the hold changes (e.g., from MSTY to WNTR).
- Recommended frequency: Weekly reviews or on 5% BTC moves to minimize trading costs (aim for 4-6 trades/year).
This approach leverages Bitcoin's influence on MSTR while mitigating the risks of MSTY's covered call drag during downtrends and WNTR's losses in uptrends.
## Setup and Usage
1. **Chart Requirements**:
- Apply this indicator to a Bitcoin chart (e.g., BTCUSD on Binance or Coinbase, daily timeframe recommended).
- Ensure MSTR stock data is accessible (TradingView supports it natively).
2. **Adding to TradingView**:
- Open the Pine Editor.
- Paste the script code.
- Save and add to your chart.
- Customize inputs if needed (e.g., adjust SMA/RSI lengths for different timeframes).
3. **Interpretation**:
- **Green Background/Triangle**: Allocate 100% to MSTY – Bitcoin is in an uptrend, MSTR not overbought.
- **Red Background/Triangle**: Allocate 100% to WNTR – Bitcoin in downtrend, MSTR not oversold.
- **Yellow Switch Cross**: Rebalance your portfolio immediately.
- **Neutral (No Signal)**: Panel shows "Neutral" – Hold cash or previous position; reassess weekly.
- Monitor the panel for key metrics to validate signals manually.
4. **Backtesting and Strategy Integration**:
- Convert to a strategy script by changing `indicator()` to `strategy()` and adding entry/exit logic for automated testing.
- In simulations (e.g., using Python or TradingView's backtester), it has outperformed buy-and-hold in volatile markets by ~100-200% relative APY, but results vary.
- Factor in fees: ETF expense ratios (~0.99%), trading commissions (~$0.40/trade), and slippage.
5. **Risk Management**:
- Use with a diversified portfolio; never allocate more than you can afford to lose.
- Add stop-losses (e.g., 10% trailing) to protect against extreme moves.
- Rebalance sparingly to avoid over-trading in sideways markets.
- Dividends: Reinvest MSTY/WNTR payouts into the current hold for compounding.
## Performance Insights (Simulated as of August 4, 2025)
Based on synthetic backtests modeling the last 12 months:
- **Optimized Strategy APY**: ~125% (by timing switches effectively).
- **Hold 100% MSTY APY**: ~6% (gains from BTC rallies offset by downtrends).
- **Hold 100% WNTR APY**: ~-15% (losses in bull phases outweigh bear gains).
In one scenario with stronger volatility, the strategy achieved ~4533% APY vs. 10% for MSTY and -34% for WNTR, highlighting its potential in dynamic markets. However, these are illustrative; real results depend on actual BTC/MSTR movements. Test thoroughly on historical data.
## Limitations and Considerations
- **Data Dependency**: Relies on accurate BTC and MSTR data; delays or gaps can affect signals.
- **Market Risks**: Bitcoin's volatility can lead to false signals (whipsaws); the RSI filter helps but isn't perfect.
- **No Guarantees**: This indicator doesn't predict the future. MSTR's correlation to BTC may change (e.g., due to regulatory events).
- **Not for All Users**: Best for intermediate/advanced traders familiar with ETFs and crypto. Beginners should paper trade first.
- **Updates**: As of August 4, 2025, this is version 1.0. Future updates may include volume filters or EMA options.
If you find this indicator useful, consider leaving a like or comment on TradingView. Feedback welcome for improvements!
HTC peppermint_07 CCI w signal + s&r RSI
This CCI version enhances the traditional Commodity Channel Index (CCI) by integrating a dynamically calculated Relative Strength Index (RSI) that acts as support and resistance as shown in the screenshot, it can add as a confirmation to the divergence found in the CCI.
Key Features:
Enhanced CCI: The primary plot (black line but customizable) represents the standard CCI, providing insight into price momentum and potential overbought/oversold conditions.
Dynamic RSI Support/Resistance: The upper and lower bands (medium cyan line) are derived from a smoothed RSI, dynamically adjusting to the current market volatility. These bands serve as potential support and resistance levels for the CCI as additional confirmation for the divergence.
Overbought/Oversold Zones: The traditional overbought (+100) and oversold (-100) levels for CCI are marked with horizontal dotted lines.
Benefits:
Improved Entry/Exit Signals: Combining CCI with dynamic RSI support/resistance may offer more precise trading signals compared to using CCI alone.
Dynamic Adaptation: The RSI-based bands adapt to changing market conditions, potentially providing more relevant support and resistance levels.
Divergence Confirmation: dynamic s&r RSI adds confluence to potential trend reversals identified by the CCI.
Potential Usage:
Traders might use this indicator to:
Identify potential overbought/oversold conditions using the CCI and its relationship to the dynamic RSI bands.
Look for breakouts beyond the dynamic support/resistance levels as potential entry points.
Confirm potential trend reversals using RSI divergence (cyan and red label above divergence) signals.
Further Development Considerations:
Customizable Parameters: Allowing users to adjust the CCI length, RSI periods, and smoothing factors would enhance flexibility.
Alert Conditions: Adding alerts for breakouts, overbought/oversold conditions, and divergence signals would improve usability.
Backtesting: Thoroughly backtesting the indicator's performance across different assets and timeframes is essential before using it for live trading.
DISCLAIMER: !!
indicator is a custom technical analysis tool designed for educational and informational purposes only. It should not be construed as financial advice or a recommendation to buy or sell any security. Trading involves substantial risk of loss and may not be suitable for all investors.
Key Points to Consider:
No Guarantee of Profitability: The indicator's past performance is not indicative of future results. No trading strategy can guarantee profits or eliminate the risk of losses. You could lose some or all of your investment.
Use at Your Own Risk: Use of this indicator is solely at your own discretion and risk. You are responsible for your trading decisions. The developers and distributors of this indicator are not liable for any losses incurred as a result of using it.
Not Financial Advice: This indicator does not provide financial advice. Consult with a qualified financial advisor before making any investment decisions.
Backtesting Limitations: Backtested results, if presented, should be viewed with caution. Past performance may not reflect future results due to various factors, including changing market conditions and the limitations of backtesting methodologies.
Indicator Limitations: Technical indicators, including this one, are not perfect. They can generate false signals, and their effectiveness can vary depending on market conditions and the specific parameters used.
Parameter Optimization: Optimizing indicator parameters for past performance can lead to overfitting, which may not translate to future profitability.
No Warranty: The indicator is provided "as is" without any warranty of any kind, either express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, or non-infringement.
Changes and Updates: The developers may make changes or updates to the indicator without notice.
By using the "HTC peppermint_07 CCI w signal + s&r RSI" indicator, you acknowledge and agree to the terms of this disclaimer. If you do not agree with these terms, do not use the indicator.
ChartArt-Bankniftybuying5minName: ChartArt-BankNifty Buying Strategy (5-Minute)
Timeframe: 5-Minute Candles
Asset: BankNifty (Indian Stock Market Index)
Trading Hours: 9:30 AM - 2:45 PM IST (Indian Standard Time)
This strategy is designed for BankNifty intraday traders who want to capitalize on short-term price movements within a defined trading window. It combines technical indicators like Simple Moving Averages (SMA), Relative Strength Index (RSI), and candlestick patterns to identify potential buy signals during intraday downtrends. The strategy employs specific entry, stop-loss, and target conditions to manage trades effectively and minimize risk.
Technical Indicators Used
Simple Moving Averages (SMA):
EMA7: 7-period SMA on closing price.
EMA5: 5-period SMA on closing price.
Purpose: Used to identify the intraday trend by comparing short-term moving averages. The strategy focuses on situations where the market is in a minor downtrend, indicated by EMA5 being below EMA7.
Relative Strength Index (RSI):
RSI14: 14-period RSI, a momentum oscillator that measures the speed and change of price movements.
SMA14: 14-period SMA of the RSI.
Purpose: RSI is used to identify potential reversal points. The strategy looks for situations where the RSI is below its own moving average, suggesting weakening momentum in the downtrend.
Candlestick Patterns:
Relaxed Hammer or Doji (2nd Candle): A pattern where the second candle in a 3-candle sequence shows a potential reversal signal (Hammer or Doji), indicating indecision or a potential turning point.
Bearish 1st Candle: The first candle is bearish, setting up the context for a potential reversal.
Bullish 3rd Candle: The third candle must be bullish with specific characteristics (closing near the high, surpassing the previous high), confirming the reversal.
Strategy Conditions
Time Condition:
The strategy is only active during specific hours (9:30 AM to 2:45 PM IST). This ensures that trades are only taken during the most liquid hours of the trading day, avoiding potential volatility or lack of liquidity towards market close.
Intraday Downtrend Condition:
EMA5 < EMA7: Indicates that the market is in a minor downtrend. The strategy looks for reversal opportunities within this trend.
RSI Condition:
RSI14 <= SMA14: Indicates that the current RSI value is below its 14-period SMA, suggesting potential weakening momentum, which can precede a reversal.
Candlestick Patterns:
1st Candle: Must be bearish, setting up the context for a potential reversal.
2nd Candle: Must either be a Hammer or Doji, indicating a potential reversal pattern.
3rd Candle: Must be bullish, with specific characteristics (closing near the high, breaking the previous high, etc.), confirming the reversal.
RSI Crossover Condition:
A crossover of the RSI over its SMA in the last 5 periods is also checked, adding further confirmation to the reversal signal.
Entry and Exit Rules
Entry Signal:
A buy signal is generated when all the conditions (time, intraday downtrend, bearish 1st candle, hammer/doji 2nd candle, bullish 3rd candle, and RSI condition) are met. The trade is entered at the high of the bullish third candle.
Stop Loss:
The stop loss is calculated based on the difference between the entry price and the low of the second candle. If this difference is greater than 90 points, the stop loss is placed at the midpoint of the second candle's range (average of high and low). Otherwise, it is placed at the low of the second candle.
Target 1:
The first target is set at 1.8 times the difference between the entry price and the stop loss. When this target is hit, half of the position is exited to lock in partial profits.
Target 2:
The second target is set at 3 times the difference between the entry price and the stop loss. The remaining position is exited at this point, or if the price hits the stop loss.
Originality and Usefulness
This strategy is original in its combination of multiple technical indicators and candlestick patterns to identify potential reversals in a specific intraday timeframe. By focusing on minor downtrends and utilizing a 3-candle reversal pattern, the strategy seeks to capture quick price movements with a structured approach to risk management.
Key Benefits:
High Precision: The strategy’s multi-step filtering process (time condition, trend confirmation, candlestick pattern analysis, and momentum evaluation via RSI) increases the likelihood of accurate trade signals.
Risk Management: The use of a dynamic stop-loss based on candle characteristics, combined with partial profit-taking, allows traders to lock in profits while still giving the trade room to develop further.
Structured Approach: The strategy provides a clear, rule-based system for entering and exiting trades, which can help remove emotional decision-making from the trading process.
Charts and Signals
The strategy produces signals in the form of labels on the chart:
Buy Signal: A green label is plotted below the candle that meets all entry conditions, indicating a potential buy opportunity.
Stop Loss (SL): A red dashed line is drawn at the stop-loss level with a label indicating "SL".
Target 1 (1st TG): A blue dashed line is drawn at the first target level with a label indicating "1st TG".
Target 2 (2nd TG): Another blue dashed line is drawn at the second target level with a label indicating "2nd TG".
These visual aids help traders quickly identify entry points, stop loss levels, and target levels on the chart, making the strategy easy to follow and implement.
Backtesting and Optimization
Backtesting: The strategy can be backtested on TradingView using historical data to evaluate its performance. Traders should consider testing across different market conditions to ensure the strategy's robustness.
Optimization: Parameters such as the RSI period, moving averages, and target multipliers can be optimized based on backtesting results to refine the strategy further.
Conclusion
The ChartArt-BankNifty Buying Strategy offers a well-rounded approach to intraday trading, focusing on capturing reversals in minor downtrends. With a strong emphasis on technical analysis, precise entry and exit rules, and robust risk management, this strategy provides a solid framework for traders looking to engage in intraday trading on BankNifty.
Schwarzman Custom ORB with Box DisplayIndicator Overview
The Schwarzman Custom ORB (Opening Range Breakout) Indicator is a fully self-developed script designed for traders who utilize opening range breakout strategies. This indicator allows users to customize their ORB settings, apply them to historical price data, and visually connect multiple ORBs to analyze past performance. The goal is to provide traders with a tool to backtest and refine their breakout strategies based on historical ORB data.
How the Indicator Works
1️⃣ User-Defined ORB Settings
• The user selects a custom start time (hour and minute) for the ORB.
• The user defines a duration (e.g., 15 minutes, 30 minutes, etc.) for the ORB period.
• A timezone offset is included to adjust for different market sessions.
2️⃣ ORB High and Low Calculation
• The script records the highest and lowest prices within the selected ORB time window.
• The recorded values remain static after the ORB period ends, ensuring accurate range plotting.
3️⃣ Historical ORB Visualization
• Instead of only showing a single ORB for the current session, this indicator connects multiple ORBs across past data.
• This allows traders to visually analyze previous breakout performance.
• The plotted ORBs remain fixed and do not repaint, ensuring an accurate backtesting experience.
4️⃣ Stepline Visualization & Range Filling
• The high and low ORB levels are displayed using stepline plots to maintain clear horizontal levels.
• A shaded box is applied between the ORB high and low for better visualization.
Use Cases & Strategy Application
📌 Backtesting Historical ORBs – See how past ORBs performed under different market conditions.
📌 Custom ORB Settings – Adjust the start time and duration for different trading sessions.
📌 Multi-ORB Analysis – Connect ORBs over multiple trading days to study trends and breakouts.
📌 Breakout Strategy Optimization – Use the historical ORB connections to refine entry and exit points.
This indicator is particularly useful for day traders, scalpers, and breakout traders looking for a data-driven approach to trading.
Indicator Development & Transparency Statement
As a trader, I have tested various ORB (Opening Range Breakout) indicators available in the TradingView community. Through these experiences, I aimed to develop a version that best fits my own trading needs and strategy.
This script is a self-developed ORB tool, created from scratch while drawing inspiration from the concept of opening range breakouts, which is widely used in trading. Since I initially coded in Pine Script v4, I used ChatGPT to help refine and migrate the script to Pine Script v6 to ensure compatibility with the latest TradingView features. However, the core logic, structure, and customization were entirely designed and implemented based on my own approach.
I am making this indicator public not to violate any TradingView guidelines but to share my work with the trading community and provide a tool that can help others analyze ORB-based strategies. If there are any compliance concerns, I am open to adjusting the script accordingly, but I want to clarify that this is not a copy of any existing ORB script—it is a custom-built indicator tailored to my own trading preferences.
I appreciate the opportunity to contribute to the community and would welcome any specific feedback from TradingView regarding rule compliance.
Best regards,
Janko S. (Schwarzman)
Appeal to TradingView
Dear TradingView Team,
This script is 100% self-developed and does not copy or replicate any third-party code. It is a customized ORB tool designed for traders who wish to backtest and analyze opening range breakout strategies over multiple sessions. We kindly request specific clarification regarding which exact line(s) of code violate TradingView’s guidelines. If there are any compliance concerns, we are happy to adjust the script accordingly.
Please let us know the precise rules or community guidelines that were violated so we can make the necessary modifications.
🚀 Summary
✔ Fully Custom & Self-Developed – No copied or third-party code.
✔ Innovative Feature – Connects past ORBs for strategy backtesting.
✔ Transparent & Compliant – Requesting exact details on any potential rule violations.
Pinbar MTF - No Repaint# Pinbar MTF - No Repaint Indicator
## Complete Technical Documentation
---
## 📊 Overview
**Pinbar MTF (Multi-Timeframe) - No Repaint** is a professional-grade TradingView Pine Script indicator designed to detect high-probability pinbar reversal patterns with advanced filtering systems. The indicator is specifically engineered to be **100% non-repainting**, making it reliable for both live trading and backtesting.
### Key Features
✅ **Non-Repainting** - Signals only appear AFTER bar closes, never disappear
✅ **Three-Layer Filter System** - ATR, SWING, and RSI filters
✅ **Automatic SL/TP Calculation** - Based on risk:reward ratios
✅ **Real-time Alerts** - TradingView notifications for all signals
✅ **Visual Trade Management** - Lines, labels, and areas for entries, stops, and targets
✅ **Backtesting Ready** - Reliable historical data for strategy testing
---
## 🎯 What is a Pinbar?
A **Pinbar (Pin Bar/Pinocchio Bar)** is a single candlestick pattern that indicates a potential price reversal:
### Bullish Pinbar (BUY Signal)
- **Long lower wick** (rejection of lower prices)
- **Small body at the top** of the candle
- Shows buyers rejected sellers' attempt to push price down
- Forms at support levels or swing lows
- Entry signal for LONG positions
### Bearish Pinbar (SELL Signal)
- **Long upper wick** (rejection of higher prices)
- **Small body at the bottom** of the candle
- Shows sellers rejected buyers' attempt to push price up
- Forms at resistance levels or swing highs
- Entry signal for SHORT positions
---
## 🔧 How the Indicator Works
### 1. **Pinbar Detection Logic**
The indicator analyzes the **previous closed bar ** to identify pinbar patterns:
```
Bullish Pinbar Requirements:
- Lower wick > 72% of total candle range (adjustable)
- Upper wick < 28% of total candle range
- Close > Open (bullish candle body)
Bearish Pinbar Requirements:
- Upper wick > 72% of total candle range (adjustable)
- Lower wick < 28% of total candle range
- Close < Open (bearish candle body)
```
**Why check ?** By analyzing the previous completed bar, we ensure the pattern is fully formed and won't change, preventing repainting.
---
### 2. **Three-Layer Filter System**
#### 🔍 **Filter #1: ATR (Average True Range) Filter**
- **Purpose**: Ensures the pinbar has significant size
- **Function**: Only signals if pinbar range ≥ ATR value
- **Benefit**: Filters out small, insignificant pinbars
- **Settings**:
- Enable/Disable toggle
- ATR Period (default: 7)
**Example**: If ATR = 50 pips, only pinbars with 50+ pip range will signal.
---
#### 🔍 **Filter #2: SWING Filter** (Always Active)
- **Purpose**: Confirms pinbar forms at swing highs/lows
- **Function**: Validates the pinbar is an absolute high/low
- **Benefit**: Identifies true reversal points
- **Settings**:
- Swing Candles (default: 3)
**How it works**:
- For bullish pinbar: Checks if low is lowest of past 3 bars
- For bearish pinbar: Checks if high is highest of past 3 bars
**Example**: With 3 swing candles, a bullish pinbar must have the lowest low among the last 3 bars.
---
#### 🔍 **Filter #3: RSI (Relative Strength Index) Filter**
- **Purpose**: Confirms momentum conditions
- **Function**: Prevents signals in extreme momentum zones
- **Benefit**: Avoids counter-trend trades
- **Settings**:
- Enable/Disable toggle
- RSI Period (default: 7)
- RSI Source (Close, Open, High, Low, HL2, HLC3, OHLC4)
- Overbought Level (default: 70)
- Oversold Level (default: 30)
**Logic**:
- Bullish Pinbar: Only signals if RSI < 70 (not overbought)
- Bearish Pinbar: Only signals if RSI > 30 (not oversold)
---
### 3. **Stop Loss Calculation**
Two methods available:
#### Method A: ATR-Based Stop Loss (Recommended)
```
Bullish Pinbar:
SL = Pinbar Low - (1 × ATR)
Bearish Pinbar:
SL = Pinbar High + (1 × ATR)
```
**Benefit**: Dynamic stops that adapt to market volatility
#### Method B: Fixed Pips Stop Loss
```
Bullish Pinbar:
SL = Pinbar Low - (Fixed Pips)
Bearish Pinbar:
SL = Pinbar High + (Fixed Pips)
```
**Settings**:
- Calculate Stop with ATR (toggle)
- Stop Pips without ATR (default: 5)
---
### 4. **Take Profit Calculation**
Take Profit is calculated based on Risk:Reward ratio:
```
Bullish Trade:
TP = Entry + (Entry - SL) × Risk:Reward Ratio
Bearish Trade:
TP = Entry - (SL - Entry) × Risk:Reward Ratio
```
**Example**:
- Entry: 1.2000
- SL: 1.1950 (50 pip risk)
- RR: 2:1
- TP: 1.2100 (100 pip reward = 50 × 2)
**Settings**:
- Risk:Reward Ratio (default: 1.0, range: 0.1 to 10.0)
---
## 📈 Visual Elements
### On-Chart Displays
1. **Signal Markers**
- 🟢 **Green Triangle Up** = Bullish Pinbar (BUY)
- 🔴 **Red Triangle Down** = Bearish Pinbar (SELL)
- Placed directly on the pinbar candle
2. **Entry Labels**
- Green "BUY" label with entry price
- Red "SELL" label with entry price
- Shows exact entry level
3. **Stop Loss Lines**
- 🔴 Red horizontal line
- "SL" label
- Extends 20 bars forward
4. **Take Profit Lines**
- 🟢 Green horizontal line
- "TP" label
- Extends 20 bars forward
5. **Risk/Reward Areas** (Optional)
- Red shaded box = Risk zone (Entry to SL)
- Green shaded box = Reward zone (Entry to TP)
- Visual risk:reward visualization
6. **Info Table** (Top Right)
- Displays current settings
- Shows filter status (ON/OFF)
- Real-time RSI value
- Quick reference panel
---
## 🔔 Alert System
Three alert types available:
### 1. Combined Alert: "Pinbar Signal (Any Direction)"
- Fires for BOTH bullish and bearish pinbars
- **Best for**: General monitoring
- **Message**: "Pinbar Signal Detected on {TICKER} at {PRICE}"
### 2. Bullish Alert: "Bullish Pinbar Alert"
- Fires ONLY for BUY signals
- **Best for**: Long-only strategies
- **Message**: "BUY Signal on {TICKER} at {PRICE}"
### 3. Bearish Alert: "Bearish Pinbar Alert"
- Fires ONLY for SELL signals
- **Best for**: Short-only strategies
- **Message**: "SELL Signal on {TICKER} at {PRICE}"
---
## ⚙️ Input Parameters Reference
### **Filters Group**
| Parameter | Default | Range | Description |
|-----------|---------|-------|-------------|
| ATR Filter on Pinbar Range? | ✅ ON | Boolean | Enable/disable ATR filter |
| ATR Period | 7 | 1+ | Lookback period for ATR calculation |
| Swing Candles | 3 | 1+ | Bars to check for swing high/low |
| RSI Filter on Pinbar? | ❌ OFF | Boolean | Enable/disable RSI filter |
| RSI Period | 7 | 2+ | Lookback period for RSI calculation |
| RSI Source | Close | Multiple | Price data for RSI (Close/Open/High/Low/etc) |
| RSI Overbought Level | 70 | 50-100 | Upper threshold for RSI filter |
| RSI Oversold Level | 30 | 0-50 | Lower threshold for RSI filter |
### **Pinbar Detection Group**
| Parameter | Default | Range | Description |
|-----------|---------|-------|-------------|
| Shadow % vs Body | 72 | 50-95 | Minimum wick size as % of total range |
### **Visualization Group**
| Parameter | Default | Range | Description |
|-----------|---------|-------|-------------|
| Show SL and TP Lines? | ✅ ON | Boolean | Display stop loss and take profit lines |
| Show SL and TP Area? | ❌ OFF | Boolean | Show shaded risk/reward boxes |
### **Risk Management Group**
| Parameter | Default | Range | Description |
|-----------|---------|-------|-------------|
| Risk:Reward Ratio | 1.0 | 0.1-10.0 | Target profit vs risk (1.0 = 1:1, 2.0 = 1:2) |
| Calculate Stop with ATR? | ✅ ON | Boolean | Use ATR for stop calculation |
| Stop Pips without ATR | 5 | 1+ | Fixed pip stop when ATR disabled |
---
## 🚫 Non-Repainting Architecture
### What is Repainting?
**Repainting** occurs when an indicator's historical signals differ from what appeared in real-time. This makes backtesting unreliable and can lead to false confidence in a strategy.
### How This Indicator Prevents Repainting
1. **Closed Bar Analysis**
- All calculations use ` ` offset (previous bar)
- Only analyzes COMPLETED candles
- Signals appear on the bar AFTER the pinbar closes
2. **Confirmed Swing Points**
- Waits for sufficient bar history before signaling
- Only checks historical bars that cannot change
- Prevents premature swing detection
3. **Static Alert Timing**
- Alerts fire only after bar completion
- No conditional logic that changes historically
- Same results in replay mode and live trading
### Verification Method
To verify non-repainting behavior:
1. Apply indicator to chart
2. Note signal locations and prices
3. Refresh browser / reload chart
4. **Signals remain in exact same locations**
---
## 💼 Trading Strategy Guidelines
### Entry Rules
**For Bullish Pinbar (LONG):**
1. Wait for green triangle to appear
2. Enter at close of pinbar (shown in label)
3. Alternative: Enter on break of pinbar high
4. Place stop loss at red SL line
5. Set target at green TP line
**For Bearish Pinbar (SHORT):**
1. Wait for red triangle to appear
2. Enter at close of pinbar (shown in label)
3. Alternative: Enter on break of pinbar low
4. Place stop loss at red SL line
5. Set target at green TP line
### Risk Management
- **Position Sizing**: Risk only 1-2% of account per trade
- **Stop Loss**: Always use the calculated SL (never move it wider)
- **Take Profit**: Use calculated TP or trail stop after 1:1 RR
- **Multiple Timeframes**: Confirm signals on higher timeframe
### Best Practices
✅ **DO:**
- Wait for bar to close before entering
- Trade in direction of higher timeframe trend
- Use on liquid markets with clear support/resistance
- Combine with price action analysis
- Keep a trading journal
❌ **DON'T:**
- Enter before bar closes (prevents seeing full pattern)
- Trade against strong trends
- Ignore the filters (they improve win rate)
- Risk more than 2% per trade
- Trade every signal (be selective)
---
## 📊 Backtesting & Data Export
### Available Data Points
The indicator exports these values for strategy development:
| Output | Description |
|--------|-------------|
| Bullish Signal | 1 = BUY signal, 0 = No signal |
| Bearish Signal | 1 = SELL signal, 0 = No signal |
| Bull SL | Stop loss level for long trades |
| Bull TP | Take profit level for long trades |
| Bull Entry | Entry price for long trades |
| Bear SL | Stop loss level for short trades |
| Bear TP | Take profit level for short trades |
| Bear Entry | Entry price for short trades |
### How to Use in Strategy
These values can be accessed by Pine Script strategies using:
```pine
indicator_values = request.security(syminfo.tickerid, timeframe.period,
)
```
---
## 🎓 Understanding the Filters
### Why Use Multiple Filters?
Single-indicator systems often generate too many false signals. This indicator uses a **confluence approach**:
1. **Pinbar Pattern** = Price rejection detected
2. **+ SWING Filter** = Rejection at key level
3. **+ ATR Filter** = Significant move
4. **+ RSI Filter** = Favorable momentum
**Result**: Higher probability setups with better risk:reward
### Filter Optimization
**Conservative Settings** (Fewer, Higher Quality Signals):
- ATR Filter: ON
- Swing Candles: 5
- RSI Filter: ON
- Shadow %: 75%
**Aggressive Settings** (More Signals, More Noise):
- ATR Filter: OFF
- Swing Candles: 2
- RSI Filter: OFF
- Shadow %: 65%
**Balanced Settings** (Recommended):
- ATR Filter: ON
- Swing Candles: 3
- RSI Filter: OFF (or ON for trending markets)
- Shadow %: 72%
---
## 🔍 Troubleshooting
### "No Signals Appearing"
**Possible Causes:**
1. Filters are too strict
2. No pinbars forming on chart
3. Insufficient bar history
**Solutions:**
- Reduce Shadow % to 65%
- Reduce Swing Candles to 2
- Disable ATR or RSI filters temporarily
- Check that chart has enough data loaded
### "Too Many Signals"
**Solutions:**
- Enable ATR filter
- Increase Swing Candles to 4-5
- Enable RSI filter
- Increase Shadow % to 75-80%
### "Signals Appearing Late"
**This is normal behavior!** The indicator:
- Analyzes previous closed bar
- Signals appear on the bar AFTER the pinbar
- This is what prevents repainting
- Signal latency is 1 bar (by design)
---
## 📝 Technical Specifications
**Indicator Type:** Overlay (displays on price chart)
**Pine Script Version:** 5
**Max Labels:** 500
**Max Lines:** 500
**Repainting:** None (100% non-repainting)
**Data Window Values:** 8 exported values
**Alert Types:** 3 (Combined, Bullish, Bearish)
**Performance:**
- Lightweight script (fast execution)
- Works on all timeframes
- Compatible with all markets (Forex, Crypto, Stocks, Futures)
- No data snooping bias
---
## 🎯 Use Cases
### 1. **Swing Trading**
- Timeframe: Daily, 4H
- Filter Settings: All enabled
- Best for: Catching major reversals
### 2. **Day Trading**
- Timeframe: 15m, 1H
- Filter Settings: ATR + SWING only
- Best for: Intraday reversals
### 3. **Scalping**
- Timeframe: 5m, 15m
- Filter Settings: SWING only (aggressive)
- Best for: Quick reversals (requires experience)
### 4. **Position Trading**
- Timeframe: Weekly, Daily
- Filter Settings: All enabled + high RR (2:1 or 3:1)
- Best for: Long-term trend reversal catches
---
## 🏆 Advantages Over Other Pinbar Indicators
✅ **Guaranteed Non-Repainting** - Many pinbar indicators repaint; this one never does
✅ **Automatic SL/TP** - No manual calculation needed
✅ **Multi-Layer Filtering** - Reduces false signals significantly
✅ **Visual Trade Management** - Clear entry, stop, and target levels
✅ **Flexible Configuration** - Adaptable to any trading style
✅ **Alert System** - Never miss a setup
✅ **Backtesting Ready** - Reliable historical data
✅ **Professional Grade** - Suitable for live trading
---
## 📚 Educational Resources
### Recommended Reading on Pinbars
- "The Pin Bar Trading Strategy" by Nial Fuller
- "Price Action Trading" by Al Brooks
- TradingView Education: Price Action Patterns
### Practice Recommendations
1. Paper trade signals for 20+ trades before live trading
2. Backtest on different timeframes and markets
3. Keep detailed records of all trades
4. Analyze winning vs losing setups
5. Refine filter settings based on results
---
## ⚖️ Disclaimer
This indicator is a tool for technical analysis and does not guarantee profits. Trading involves substantial risk of loss. Past performance is not indicative of future results.
- Always use proper risk management
- Never risk more than you can afford to lose
- Consider your trading experience and objectives
- Seek independent financial advice if needed
---
## 📧 Version Information
**Current Version:** 1.0
**Last Updated:** 2024
**Compatibility:** TradingView Pine Script v5
**Status:** Production Ready
---
## 🔄 Future Enhancements (Potential)
Possible future additions:
- Multi-timeframe confirmation option
- Volume filter integration
- Customizable color schemes
- Win rate statistics display
- Partial profit taking levels
- Trailing stop functionality
---
## 📖 Quick Start Guide
### 5-Minute Setup
1. **Add to Chart**
- Open TradingView
- Go to Pine Editor
- Paste the code
- Click "Add to Chart"
2. **Configure Settings**
- Open indicator settings (gear icon)
- Start with default settings
- Enable "Show SL and TP Lines"
3. **Set Alert**
- Right-click indicator name
- Click "Add Alert"
- Select "Pinbar Signal (Any Direction)"
- Configure notification method
4. **Test**
- Scroll back on chart
- Verify signals make sense
- Check that signals don't repaint
5. **Trade** (After Practice!)
- Wait for alert
- Verify signal quality
- Enter, place SL/TP
- Manage trade
---
## 🎯 Final Thoughts
The **Pinbar MTF - No Repaint** indicator is designed for serious traders who value:
- **Reliability** over flashy signals
- **Quality** over quantity
- **Honesty** over false promises
This indicator will NOT:
- Make you rich overnight
- Win every trade
- Replace proper trading education
This indicator WILL:
- Identify high-probability reversal setups
- Save you analysis time
- Provide consistent, non-repainting signals
- Help you develop a systematic trading approach
**Success in trading comes from:**
1. Proper education (60%)
2. Risk management (30%)
3. Technical tools like this indicator (10%)
Use this tool as part of a complete trading plan, not as a standalone solution.
KillZones + ACD Fisher [TradingFinder] Sessions + Reversal Level🔵 Introduction
🟣 ACD Method
"The Logical Trader" opens with a thorough exploration of the ACD Methodology, which focuses on pinpointing particular price levels associated with the opening range.
This approach enables traders to establish reference points for their trades, using "A" and "C" points as entry markers. Additionally, the book covers the concept of the "Pivot Range" and how integrating it with the ACD method can help maximize position size while minimizing risk.
🟣 Session
The forex market is operational 24 hours a day, five days a week, closing only on Saturdays and Sundays. Typically, traders prefer to concentrate on one specific forex trading session rather than attempting to trade around the clock.
Trading sessions are defined time periods when a particular financial market is active, allowing for the execution of trades.
The most crucial trading sessions within the 24-hour cycle are the Asia, London, and New York sessions, as these are when substantial money flows and liquidity enter the market.
🟣 Kill Zone
Traders in financial markets earn profits by capitalizing on the difference between their buy/sell prices and the prevailing market prices.
Traders vary in their trading timelines.Some traders engage in daily or even hourly trading, necessitating activity during periods with optimal trading volumes and notable price movements.
Kill zones refer to parts of a session characterized by higher trading volumes and increased price volatility compared to the rest of the session.
🔵 How to Use
🟣 Session Times
The "Asia Session" comprises two parts: "Sydney" and "Tokyo." This session begins at 23:00 and ends at 06:00 UTC. The "Asia KillZone" starts at 23:00 and ends at 03:55 UTC.
The "London Session" includes "Frankfurt" and "London," starting at 07:00 and ending at 14:25 UTC. The "London KillZone" runs from 07:00 to 09:55 UTC.
The "New York" session starts at 14:30 and ends at 19:25 UTC, with the "New York am KillZone" beginning at 14:30 and ending at 22:55 UTC.
🟣 ACD Methodology
The ACD strategy is versatile, applicable to various markets such as stocks, commodities, and forex, providing clear buy and sell signals to set price targets and stop losses.
This strategy operates on the premise that the opening range of trades holds statistical significance daily, suggesting that initial market movements impact the market's behavior throughout the day.
Known as a breakout strategy, the ACD method thrives in volatile or strongly trending markets like crude oil and stocks.
Some key rules for employing the ACD strategy include :
Utilize points A and C as critical reference points, continually monitoring these during trades as they act as entry and exit markers.
Analyze daily and multi-day pivot ranges to understand market trends. Prices above the pivots indicate an upward trend, while prices below signal a downward trend.
In forex trading, the ACD strategy can be implemented using the ACD indicator, a technical tool that gauges the market's supply and demand balance. By evaluating trading volume and price, this indicator assists traders in identifying trend strength and optimal entry and exit points.
To effectively use the ACD indicator, consider the following :
Identifying robust trends: The ACD indicator can help pinpoint strong, consistent market trends.
Determining entry and exit points: ACD generates buy and sell signals to optimize trade timing.
Bullish Setup :
When the "A up" line is breached, it’s wise to wait briefly to confirm it’s not a "Fake Breakout" and that the price stabilizes above this line.
Upon entering the trade, the most effective stop loss is positioned below the "A down" line. It's advisable to backtest this to ensure the best outcomes. The recommended reward-to-risk ratio for this strategy is 1, which should also be verified through backtesting.
Bearish Setup :
When the "A down" line is breached, it’s prudent to wait briefly to ensure it’s not a "Fake Breakout" and that the price stabilizes below this line.
Upon entering the trade, the most effective stop loss is positioned above the "A up" line. Backtesting is recommended to confirm the best results. The recommended reward-to-risk ratio for this strategy is 1, which should also be validated through backtesting.
Advantages of Combining Kill Zone and ACD Method in Market Analysis :
Precise Trade Timing : Integrating the Kill Zone strategy with the ACD Method enhances precision in trade entries and exits. The ACD Method identifies key points for trading, while the Kill Zone focuses on high-activity periods, together ensuring optimal timing for trades.
Better Trend Identification : The ACD Method’s pivot ranges help spot market trends, and when combined with the Kill Zone’s emphasis on periods of significant price movement, traders can more effectively identify and follow strong market trends.
Maximized Profits and Minimized Risks : The ACD Method's structured approach to setting price targets and stop losses, coupled with the Kill Zone's high-volume trading periods, helps maximize profit potential while reducing risk.
Robust Risk Management : Combining these methods provides a comprehensive risk management strategy, strategically placing stop losses and protecting capital during volatile periods.
Versatility Across Markets : Both methods are applicable to various markets, including stocks, commodities, and forex, offering flexibility and adaptability in different trading environments.
Enhanced Confidence : Using the combined insights of the Kill Zone and ACD Method, traders gain confidence in their decision-making process, reducing emotional trading and improving consistency.
By merging the Kill Zone’s focus on trading volumes and the ACD Method’s structured breakout strategy, traders benefit from a synergistic approach that enhances precision, trend identification, and risk management across multiple markets.






















