IQ Trend Beams [TradingIQ]🔹 OVERVIEW
IQ Trend Beams is a trend assistant that draws your trendlines the way a disciplined chartist would - and then holds them accountable. It maintains two channels, support and resistance , each always showing one working line. A line is born forming : it moves and re-shapes freely, polished every bar by a perceptual score toward the line a skilled trader would actually draw. When its geometry settles and it has earned enough tangency credit, it locks - and from that moment the ink is frozen forever; it never moves again. Locked ink extends until break evidence fires, then it is broken : restyled but never relocated, holding the screen as history until its successor locks.
Riding each live beam is its own forecast ; a calibration band, a reach profile, and ghost levels, all built from the volume that has actually traded around that line.
This is an honest visualization and modeling tool , not a signal service. It draws structure clearly and states its own confidence out loud; it is not a validated edge or a promise of profit. Read the limitations section - it is not window dressing.
🔹 THE TWO CHANNELS - AN AUDITED PROMISE
Most trendline tools quietly redraw the past so the line always looks right in hindsight. Trend Beams refuses to. A line lives through three visible states:
• Forming (dotted) - the assistant sketching. It is free to move and re-fit while it hunts for the right geometry. This is the only state in which a support/resistance line moves, and it is dotted precisely so you can tell a guess from a commitment.
• Locked (solid) - the geometry has stilled and earned its tangency credit, so the line is frozen . It will never move again. A locked beam is a promise the tool has to keep in public.
• Broken (restyled) - break evidence fired. The ink is re-styled to show it failed, but it is never relocated ; it holds its original slope as an honest record and, if you keep history on, dims into the background once its successor locks.
Because a locked line cannot move, what you saw at lock time is what you keep. This is the core design commitment of the tool.
Two rails, either direction by design. Support is the lower rail, fit to the swing lows on the underside of price; resistance is the upper rail, fit to the swing highs above it. Neither is locked to a single slope: in a falling market the support rail angles down with the lows (the floor of the down-channel), and in a rally the resistance rail angles up with the highs (the ceiling of the up-channel). That is deliberate. A tool that forces support to only ever point up would go blind to the lower boundary of a downtrend - and miss exactly the moves that matter. Trend Beams instead always draws both boundaries of the channel price is actually in , so a strong move is framed on both sides rather than half-missed. If you prefer to read it the classical way, follow the rail that agrees with the trend and treat the other as the opposite wall of the same channel.
🔸 HOW A LINE EARNS ITS LOCK
While forming, each line is scored every bar by a perceptual fit , a running measure of how well its geometry matches what a careful trader would draw against the recent swing structure, blended with a one-pole toward its fitted slope so it settles rather than twitches. A lock is granted only when the geometry has gone still for long enough, the line has accumulated real tangency credit (genuine touches, not a single graze), and it spans a minimum bar count - and it is refused outright if it would invert the channel. The Mode dial sets how much evidence this takes.
🔹 THE AUDIT BADGE
Locked ink can carry a small measurement badge that reports, in plain terms, how the line is actually holding up:
• Wick-through - recent piercing of the line, exponentially weighted, measured against the tool's 10% design target . A well-behaved line lets price kiss it, not knife through it.
• Survival probability - the current modeled odds that the line is still valid.
• Maturity - how far through its estimated total run the move is, so a young trend reads differently from an exhausted one.
The badge is the tool grading its own work on the chart, not a trade instruction.
🔸 THE FORECAST - EACH BEAM READS ITS OWN VOLUME
Every live beam carries its own forecast, built entirely from the volume that has traded around that line. Trend Beams bins the intrabar volume by its distance from the beam, smooths it into a continuous density (a kernel-density estimate), and renders three things that ride the line:
• Calibration band - translucent ribbons hugging the beam, one per density bin, showing where the trend has held its volume. Strength is encoded as colour vibrancy at a constant perceptual lightness (the Oklab principle - a dense core reads vivid, the thin tails fade), so nothing is made brighter or darker than its weight warrants.
• Reach profile - a smooth filled contour fanning into the future margin, where each level's forward extent is its density times the trend's estimated remaining length . It answers, at a glance: if this trend keeps going, how far - and around which prices - does its own volume say it reaches?
• Ghost levels - dashed lines at the distribution's densest peaks, riding parallel to the beam, marking the prices this trend keeps returning to.
The forecast attaches only to a beam's currently-visible live element - its forming sketch, or its locked ink - and keeps no history . It is a read of the present trend, refreshed at the live edge, not a replay of the past.
🔸 THE ENGINE DIALS
• Mode - the tempo. Fast locks, breaks and re-forms sooner (short swings); Slow demands more evidence and holds through more noise (long moves); Medium is the balanced reference.
• Precision - how much data the engine reads: the perceptual fit window and the intrabar sample rate. Higher tiers resolve finer structure at more load. Sampling is timeframe-aware and never drops below one minute.
🔹 LAYERS, COLOUR & LEGIBILITY
Every layer is a toggle - forming lines, broken history, audit badges, and the forecast - so you can run it as a bare two-line channel or a fully dressed read. Colours come from three clean anchors: Support , Resistance , and Chrome (badges and neutral furniture). The whole translucent forecast - band, profile, and ghost levels - is coloured in the Oklab perceptual space, so strength shows up as vibrancy at a constant lightness rather than as glare, and a single Contrast dial scales the entire forecast from a whisper to bold.
🔸 HOW TO READ IT
• Treat a forming (dotted) line as a hypothesis and a locked (solid) line as a committed level - the tool is telling you which is which on purpose.
• Watch the audit badge : rising wick-through and falling survival probability say a locked line is wearing out.
• Read a broken line as a failed level that still marks where the structure gave way.
• Use each beam's band to see where its trend has held its volume, its reach profile for how far the trend's own volume says it can run, and its ghost levels for the prices it keeps returning to.
🔹 INPUTS
• Trend Engine - Mode (tempo) and Precision (data depth).
• Layers - show forming lines, broken history, audit badges, and the forecast.
• Colors - Support, Resistance, and Chrome anchors, plus a Contrast control for the translucent forecast.
• Channels - enable the support and/or resistance side independently.
🔸 LIMITATIONS AND HONEST NOTES
• This is a drawing and modeling assistant , not a validated strategy. It makes no performance claim and no edge claim . Nothing here is financial, investment or trading advice.
• Locked and broken lines do not repaint - once a line locks, its geometry is frozen. Forming lines move by design (they are the live sketch, and are dotted to say so), and each beam's forecast (band, profile, ghost levels) refreshes at the live edge as new volume arrives and attaches only to the current live element. These are live reads, on purpose; none of them rewrites confirmed history.
• Survival probability, maturity, remaining length and the reach profile are model estimates from the trend's own statistics - projections, not guarantees, and not forecasts of price.
• Intrabar sampling is subject to your plan's intrabar data limits ; higher Precision tiers read more intrabar data.
• Drawing budgets are finite. The tool caps its lines, labels and polylines internally, but very long histories with everything enabled push against PulseWire's per-script drawing limits - trim the layers you don't need.
Bayesian
Thorp Kelly Risk Engine [JOAT]Thorp Kelly Risk Engine
Introduction
Thorp Kelly Risk Engine is a risk-quality study that tracks virtual outcomes, Kelly estimates, Bayesian shrinkage, drawdown pressure, survival score, and deployment state.
This open-source indicator is designed as a context tool, not a standalone trading system. It focuses on explaining the current market state with restrained visuals and confirmed-bar logic where signals are used.
Core Concepts
1. Virtual Outcome Tracker
Trend setups create virtual reward/risk outcomes measured in ATR units.
2. Kelly Estimate
Win rate and payoff ratio produce full and fractional Kelly-style estimates.
3. Bayesian Shrinkage
A prior win rate reduces overconfidence when sample size is small.
4. Survival and Desk Score
Drawdown, volatility, signal density, convexity, and uncertainty combine into risk state.
kelly = (payoff * winRate - lossRate) / payoff
Features
Virtual outcome sampling
Fractional and Bayesian Kelly estimates
Drawdown throttle and volatility brake
Ruin-adjusted Kelly
Prime, defense, and lockdown states
Input Parameters
Trend, RSI, and ATR lengths
Reward and risk ATR
Kelly fraction and max allocation
Minimum sample and drawdown brake
Display toggles and HUD position
How to Use This Script
Use TKR as risk context. Prime states suggest healthier virtual samples; defensive and lockdown states warn that model risk is elevated.
Limitations
The script uses historical OHLCV data and cannot know future prices.
Signals and states can be late during fast reversals because confirmed-bar logic is used to reduce repainting.
Model outputs should be interpreted with market context, risk controls, and independent analysis.
No visual state should be treated as a certain trade outcome.
Originality Statement
TKR is original in combining Kelly math, Bayesian shrinkage, drawdown throttling, survival scoring, and uncertainty cones.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice, investment advice, or a recommendation to buy or sell any financial instrument. All calculations are derived from historical market data and may produce inaccurate readings in some market conditions. No indicator can predict future market behavior. Use proper risk management and independent judgment.
-Made with passion by jackofalltrades
Indicator
Probability Horizon - Bayesian SVJD Model# Probability Horizon — Bayesian SVJD Model
## What it does
Probability Horizon is a forward-looking probability projection tool. It does **not** generate buy or sell signals, does **not** act as a strategy, and does **not** place orders. Its single purpose is to display, at each bar, where price **may** be over a user-set horizon, drawn as a forward cone with three percentile lines (25%, 50%, 75%) plus an 8-row diagnostic dashboard.
The cone is the visual answer to two questions the indicator computes every bar:
1. **How wide should the distribution of forward outcomes be?** — set by expected total variance over the horizon.
2. **Should the distribution tilt up or down?** — set by a Bayesian-averaged probability of an up-move.
The wider the cone, the more uncertain the model is. The more the cone tilts, the more directionally confident the model is. A flat, narrow cone means "I expect range-bound, low-vol conditions." A wide, steeply tilted cone means "I expect a directional move under elevated variance."
## Why these components are combined (justification for the mashup)
This script combines several quantitative methods — KAMA, z-score, Haar wavelet, Kalman filter, Hamilton regime-switching, Hawkes process, Heston stochastic volatility, Merton jump-diffusion, Bayesian model averaging, and a calibration tracker. To a reviewer this can look like a collection of indicators bolted together, but it is not. It is **one** statistical model — a Stochastic Volatility Jump-Diffusion (SVJD) framework — whose pieces are mathematically required to produce a forward probability distribution.
Each component has a specific structural role:
- **Forward variance estimation.** A probability cone needs a forward-variance number. The naive choice is realized volatility × √horizon (pure Brownian motion), but this ignores two well-documented facts about financial returns: variance is mean-reverting (Heston, 1993) and returns have fat tails from discrete jumps (Merton, 1976). The Heston + jump-diffusion combination addresses both. The script uses the Heston integrated-variance closed form for the mean-reverting diffusion component, adds a Merton jump-variance contribution, and optionally adds a vol-of-vol uncertainty term. The result is a horizon-dependent variance estimate that dynamically narrows when volatility is elevated (expected to decay back to mean) and widens when volatility is depressed (expected to rise).
- **Directional probability.** To tilt the cone, a probability of direction is required. A single signal is unreliable, so five orthogonal sub-models each output their own P(up):
- A short-term KAMA-trend model
- A z-score mean-reversion model
- A Haar wavelet decomposition model (price denoised into trend + cycle + noise; signal fires only on the trend band)
- A Kalman-adaptive smoothing model (smoothing factor adapts to noise level in real time)
- A Hamilton 3-state regime model with Gaussian observation likelihoods (Bull / Bear / Range)
- **Sub-model combination.** The five P(up) values are combined via Bayesian model averaging with online weight updates. Each bar, after a fixed evaluation horizon, every sub-model is scored by log-loss against the actual outcome. Weights update via exponential decay: a model that predicted correctly gains weight; a model that failed loses weight. A minimum weight floor prevents any model from being silenced completely, so it can recover if its regime returns. Weights are renormalised to sum to 1.
- **Crisis dampening.** A Hawkes self-exciting point process monitors volatility clustering. Each large absolute return is treated as an event that boosts the process's intensity by α and decays exponentially at rate β. When intensity rises above a threshold multiple of its baseline, the final Bayesian probability is shrunk toward 0.5 — the higher the intensity, the stronger the shrinkage. This is how the model says "I have no idea — treat this as a coin flip" during regime breaks.
- **Self-correcting calibration.** A calibration tracker logs every prediction and checks the realized outcome after a fixed horizon. Predictions are binned by predicted probability (50–60%, 60–70%, etc.). If a bin's actual historical hit rate is below its predicted midpoint, future predictions in that bin are shrunk further toward 0.5. This is the model's honesty mechanism: it learns from its own miscalibration and tones itself down where it has been overconfident.
Each component answers a specific structural question. Remove any one and a specific capability disappears: no Heston → cone width does not adapt to vol regime; no calibration → no self-correction; no Hawkes → no crisis dampening; no Bayesian averaging → one model dominates and the system becomes brittle.
## How the components interact (data flow)
Every confirmed bar, the script executes the following pipeline:
1. **Measure** five raw market dimensions: KAMA slope, z-score vs trend, realized-vol percentile, OBV/price divergence, higher-TF trend.
2. **Each sub-model** maps its directional bias and strength to a probability in . The maximum single-model probability is capped at 0.60 because empirical calibration on multiple markets showed that anything higher is overconfident.
3. **Bayesian model averaging** combines the five sub-model probabilities into a single raw P(up), weighted by each sub-model's recent log-loss accuracy.
4. **Hawkes modifier** is applied: if intensity is above its warning threshold, the raw P(up) is pulled toward 0.5 in proportion to how far above threshold the intensity is.
5. **Calibration shrinkage** is applied: the post-Hawkes probability is checked against its calibration bin's historical hit rate, and shrunk further toward 0.5 if that bin has been overconfident.
6. **Forward variance** is computed separately: Heston integrated variance + Merton jump variance + optional vol-of-vol uncertainty, all over the projection horizon.
7. **The cone is drawn** with width set by the square root of forward variance and tilt set by the final shrunk probability. Three percentile lines (P25, P50, P75) are plotted from the current bar to the horizon endpoint.
Direction (sub-model probabilities → Bayesian average → Hawkes modifier → calibration shrinkage) is one half of the pipeline. Variance (Heston + jumps + vol-of-vol) is the other half. They meet at the cone, where one determines tilt and the other determines width.
## How to use it
**On the chart.** The cone shows the model's current view of the forward distribution. The P50 line is the median expected level given the implied drift. The P25 and P75 lines bracket the interquartile range. If P25 and P75 are roughly equidistant from current price, the model has no strong directional view; if the cone tilts noticeably up or down, the Bayesian probability favours that direction. A wider cone means more uncertainty; a narrower cone means tighter forward variance.
**The optional Monte Carlo cloud** (off by default) overlays bootstrap-resampled forward paths drawn from the asset's actual recent returns. Unlike the cone, it makes no Gaussian assumption — it shows the empirical distribution of forward outcomes given the asset's own recent return history.
**The 8-row dashboard** (top-right) is where the model exposes its full state:
- **Row 1 — Verdict.** Current direction (Bull / Bear / Neutral) and final P(up) percentage.
- **Row 2 — Direction.** A 10-character probability bar plus the size of the calibration shrinkage applied in percentage points.
- **Row 3 — 5 Models.** Up/down icons for each sub-model and the agreement count (e.g., "4/5 agree"). Trust the verdict more when 4 or 5 of 5 agree; trust it less when only 3 of 5 agree.
- **Row 4 — Regime.** Combined market regime (Quiet Bull / Quiet Bear / Volatile-Range / Crisis) plus the Hamilton dominant state.
- **Row 5 — Vol.** Volatility state vs long-run mean: HIGH (above mean, cone narrowing as vol decays), LOW (below mean, cone widening as vol rises), or AT MEAN. Includes the current sigma.
- **Row 6 — Risk.** Hawkes status: ✓ calm or ⚠ CRISIS. When CRISIS fires, the probability has been shrunk toward 0.5.
- **Row 7 — Honesty.** This is the most important diagnostic. It shows the actual historical hit rate for predictions in the 50–60% probability bin, with a Wilson confidence interval. If the system has predicted 55% many times and the actual rate is 53–58%, it is well-calibrated. If actual is below 50%, the system is currently overconfident and shrinkage is active.
- **Row 8 — Samples.** Total confirmed predictions and a trust level (low / warm-up / OK). Trust the cone less when total samples are below 50; trust it most when samples exceed 200.
## Suitable timeframes
The script auto-scales internal lookbacks to the chart timeframe relative to a 15-minute reference, so the same defaults work across 15-minute, 1-hour, 4-hour, and daily charts without manual tuning. Below 15 minutes the Hamilton 3-state model is automatically disabled because sample sizes become too small for reliable likelihood estimation; the other four sub-models continue to operate.
## What is original
Combining KAMA, wavelets, Kalman, Hamilton, Heston, Merton jumps, and a Hawkes process is not by itself new — these are all published methods. The original aspects of this script are:
- The **specific combination**: a five-model Bayesian ensemble for direction, with Hawkes-process crisis dampening and a self-correcting calibration tracker, all wrapped around a Heston + jump-diffusion variance estimate. I am not aware of a public Pine Script that combines all of these into a single probability cone with this data flow.
- The **calibration shrinkage mechanism**: the model logs every prediction, scores it after a fixed horizon, and applies bin-specific shrinkage to future predictions in bins where it has been overconfident. This is a self-correcting honesty layer that runs entirely on-chart, with Wilson confidence intervals and optional regime-specific calibration tables (Bull / Bear / Range).
- The **transparent diagnostic dashboard**: rather than hiding the model behind a single line, the dashboard exposes the verdict, model agreement, regime, vol state, crisis indicator, calibration quality, and sample size in eight rows. Users can see at a glance not only what the model thinks, but how much to trust it.
## Limitations (please read)
- **Pine Script cannot perform true maximum-likelihood estimation.** Heston and jump-diffusion parameters are estimated using approximation methods (AR(1) regression on log-variance, exponential moving averages for jump moments, rolling averages for long-term variance). The directional behaviour is correct — when vol is high, the cone narrows; when jumps are frequent, the cone widens — but exact parameter values are not equivalent to those a quantitative research desk would produce with MLE on tick data.
- **OHLCV data only.** No order-book data, no alternative-data feed, no options input, no fundamental input.
- **Calibration needs sample accumulation.** The Honesty row shows "warming up" until at least ~30 confirmed predictions have matured. Pine has no cross-session persistence, so calibration is rebuilt from chart history each time the indicator loads on a new chart.
- **Monte Carlo is deterministic.** Paths use a Linear Congruential Generator seeded by bar_index for reproducibility within a session. The same chart at the same moment produces the same cloud. This is intentional.
- **This is a probability indicator, not a strategy.** There are no backtest results, no equity curve, no position management. The script cannot tell you what to do; it only tells you what its model currently thinks the distribution of forward outcomes is.
- **Past calibration does not guarantee future calibration.** Market regimes change, parameters drift, and the cone should be treated as a visualisation aid rather than a prediction.
## Inputs of note
The defaults work without modification on most liquid instruments at most timeframes. Inputs worth knowing:
- **Auto-scale lookbacks** (on by default) — keeps the same defaults usable across timeframes.
- **Bayesian learning rate η** (default 0.15) — how fast sub-model weights adapt. Higher = faster but noisier.
- **Min Bayesian Probability** (default 0.62) — the threshold the dashboard uses to call a bar "Bull" or "Bear" rather than "Neutral".
- **Heston κ floor / ceiling** — bounds the mean-reversion-speed estimate. Defaults (0.02 to 0.30) handle most markets.
- **Hawkes warning threshold** (default 2.0× baseline) — when crisis dampening kicks in.
- **Monte Carlo Cloud** (off by default) — overlays bootstrap paths. Turn on if you want an empirical (non-Gaussian) view of forward outcomes alongside the cone.
## Disclaimer
This script is published for educational and analytical purposes only. It does not constitute financial advice, investment advice, a recommendation to buy or sell any financial instrument, or a solicitation of any transaction. The author is not a registered investment adviser and nothing in this script should be construed as personalised investment guidance.
Past performance does not guarantee future results. The probability projections shown by this indicator are model outputs, not forecasts of what will actually happen. Trading and investing involve substantial risk of loss and are not suitable for every investor. Users are solely responsible for their own trading decisions and for verifying that any approach is appropriate for their personal financial situation, risk tolerance, and applicable regulations.
The author and Market_Logic_India accept no liability for any losses, damages, or trading outcomes resulting from the use, misuse, or interpretation of this script. Use at your own risk.
Indicator
Probabilistic Bias Engine [JOAT]Probabilistic Bias Engine
Introduction
The Probabilistic Bias Engine (PBE) is an advanced open-source directional bias indicator that combines Bayesian probability analysis, historical for-loop pattern recognition, multi-timeframe confluence detection, and ensemble learning to quantify market directional bias with statistical confidence. This indicator transforms raw price action into probabilistic bias scores (0-100%), helping traders identify high-probability directional setups through systematic analysis of historical price behavior across multiple timeframes.
Unlike simple trend indicators that use moving averages or momentum oscillators, PBE employs a sophisticated for-loop analysis system that compares current price against historical price points across customizable lookback periods, applies Bayesian probability theory to calculate directional likelihood, and aggregates signals across multiple timeframes to generate confidence-weighted bias scores. The indicator provides both current timeframe bias and multi-timeframe confluence analysis for comprehensive directional assessment.
Why This Indicator Exists
This indicator addresses the challenge of quantifying directional bias with statistical rigor. Traditional trend indicators provide binary signals (bullish/bearish) without probability quantification. PBE systematically analyzes historical price behavior to reveal:
Bayesian Probability Calculation: Converts for-loop analysis into probabilistic bias scores using Bayesian inference
Historical Pattern Recognition: Analyzes price position relative to 1-70 historical bars to identify directional patterns
Multi-Timeframe Confluence: Confirms bias across short (5m), medium (15m), and long (60m) timeframes
Ensemble For-Loop Analysis: Combines multiple lookback periods (30, 70, 150 bars) for robust bias calculation
Volatility Regime Scaling: Adjusts probability scores based on current volatility environment
Divergence Confirmation Layer: Detects RSI divergences to enhance signal quality
Confidence Heatmap: Visualizes setup quality through multi-factor confidence scoring (0-100%)
Each component provides unique intelligence. For-loop analysis shows historical price position, Bayesian calculation quantifies probability, MTF confluence shows conviction, ensemble analysis adds robustness, volatility scaling adjusts for regime, divergence layer confirms reversals, and confidence scoring synthesizes all factors.
Core Components Explained
1. For-Loop Historical Analysis
PBE's core innovation is systematic comparison of current price against historical price points:
f_forloop_analysis(float src, int start, int lookback) =>
float sum = 0.0
for i = start to lookback
sum += src > src ? 1 : -1
float normalized = sum / (lookback - start + 1)
normalized
This function iterates through historical bars, adding +1 when current price is above historical price and -1 when below. The normalized result ranges from -1.0 (price below all historical points) to +1.0 (price above all historical points).
2. Bayesian Probability Calculation
The for-loop score is converted to probability using Bayesian inference:
f_bayesian_probability(float loop_value) =>
float evidence = loop_value > 0 ? 0.7 : 0.3
float prior = 0.5
float posterior = (prior * evidence) /
(prior * evidence + (1 - prior) * (1 - evidence))
posterior
This calculates the posterior probability of bullish bias given the for-loop evidence. Positive loop values increase bullish probability, negative values increase bearish probability. The result is scaled to 0-100% for display.
image]https://www.pulsewire.com/x/CtYqgABU/
3. Multi-Timeframe Confluence Detection
PBE requests bias data from three timeframes and counts alignment:
f_get_timeframe_bias(string tf) =>
= request.security(syminfo.tickerid, tf,
)
float prob_tf = f_bayesian_probability(loop_score_tf)
int bias_tf = prob_tf > 0.5 ? 1 : -1
Confluence is calculated by counting how many timeframes agree:
Strong Aligned (4/4): All timeframes bullish or bearish - highest conviction
Aligned (3/4): Majority alignment - moderate conviction
Weak (2/4): Split alignment - low conviction
No Alignment (1/4 or 0/4): Conflicting signals - no conviction
4. Ensemble For-Loop Analysis
Multiple lookback periods are combined for robust bias calculation:
f_forloop_ensemble(float src, int start, int end1, int end2, int end3) =>
// Calculate for-loop scores for 30, 70, and 150 bar lookbacks
float norm1 = sum1 / (end1 - start + 1)
float norm2 = sum2 / (end2 - start + 1)
float norm3 = sum3 / (end3 - start + 1)
// Weighted ensemble (shorter periods get more weight)
float ensemble = (norm1 * 0.5) + (norm2 * 0.3) + (norm3 * 0.2)
ensemble
Short-term bias (30 bars) receives 50% weight, medium-term (70 bars) receives 30%, and long-term (150 bars) receives 20%. This creates a balanced view across multiple time horizons.
5. Volatility Regime Scaling
Probability scores are adjusted based on volatility environment:
float atr_val = ta.atr(14)
float natr = (atr_val / close) * 100
float vol_percentile = ta.percentrank(natr, 100)
float regime_multiplier =
vol_percentile >= 80 ? 0.85 : // High vol: reduce confidence
vol_percentile >= 60 ? 0.92 : // Elevated: slight reduction
vol_percentile >= 40 ? 1.0 : // Normal: no adjustment
vol_percentile >= 20 ? 1.05 : // Low vol: slight increase
1.1 // Very low: increase confidence
float regime_adjusted_prob = smoothed_probability * regime_multiplier
High volatility reduces probability scores (more uncertainty), while low volatility increases scores (more predictable).
6. Divergence Confirmation Layer
RSI divergences are detected to enhance signal quality:
float rsi = ta.rsi(close, 14)
// Bullish divergence: price lower low, RSI higher low
bool bull_divergence = low < last_rsi_low_price and rsi > last_rsi_low
// Bearish divergence: price higher high, RSI lower high
bool bear_divergence = high > last_rsi_high_price and rsi < last_rsi_high
Divergences add 20 points to confidence score and trigger enhanced signals when combined with probability alignment.
7. Confidence Heatmap Visualization
Multi-factor confidence scoring (0-100%) based on:
Probability Strength (0-40 points): Distance from 50% neutral (max 40 points at 100% or 0%)
MTF Alignment (0-30 points): 30 points for 4/4 alignment, 20 for 3/4, 10 for 2/4
Divergence Confirmation (0-20 points): 20 points when divergence detected
Regime Favorability (0-10 points): 10 points for Normal/Low vol, 5 for Very Low, 0 for High vol
Total confidence score determines background heatmap intensity:
80-100%: Strong signal (bright color, low transparency)
60-79%: Moderate signal (medium color, medium transparency)
40-59%: Weak signal (dim color, high transparency)
0-39%: No signal (neutral color)
Visual Elements
Probability Line: Main plot showing smoothed probability (0-100%) with dynamic coloring
Zero-Lag Line: Circles overlay showing zero-lag probability for early signals
Histogram: Gradient-colored histogram showing probability deviation from 50% neutral
Reference Lines: 70% (strong bullish), 50% (neutral), 30% (strong bearish)
Background Zones: Strong bullish (>70%), strong bearish (<30%) with transparency
Confidence Heatmap: Background intensity based on multi-factor confidence score
Signal Shapes: High conviction bull/bear setups, regime shifts, divergence confirmations
Dashboard: Real-time metrics including current probability, strength, MTF alignment, ensemble score, volatility regime, confidence, and divergence status
Input Parameters
Bayesian Parameters:
Price Source: Data source for calculations (default: hlc3)
Bayesian Period: Smoothing period for probability (default: 14)
Signal Smoothing: EMA smoothing for final probability (default: 2)
Historical Analysis:
Loop Start: Starting bar for for-loop analysis (default: 1)
Loop Lookback: Ending bar for for-loop analysis (default: 70)
Multi-Timeframe Confluence:
Enable MTF Confluence: Toggle multi-timeframe analysis (default: enabled)
Short Timeframe: Fast timeframe for confluence (default: 5m)
Medium Timeframe: Medium timeframe for confluence (default: 15m)
Long Timeframe: Slow timeframe for confluence (default: 60m)
Confluence Requirement: Minimum timeframes required (default: 2)
Visualization:
Show Probability Bands: Toggle 70%/30% reference lines
Show Bias Zones: Toggle background coloring for strong bias
Show Histogram: Toggle probability deviation histogram
How to Use This Indicator
Step 1: Monitor Probability Level
Watch the main probability line. >70% indicates strong bullish bias, <30% indicates strong bearish bias, 40-60% is neutral.
Step 2: Check MTF Confluence
Verify dashboard shows "Strong Aligned" or "Aligned" status. Higher alignment = higher conviction.
Step 3: Assess Confidence Score
Dashboard confidence >70% indicates high-quality setup. >80% is exceptional.
Step 4: Confirm with Ensemble
Ensemble probability should align with current probability. Divergence suggests conflicting time horizons.
Step 5: Consider Volatility Regime
"Normal" or "Low Vol" regimes have higher reliability. "High Vol" regimes require extra caution.
Step 6: Wait for High Conviction Signals
Best setups occur when:
- Probability >65% or <35%
- Confidence >70%
- MTF alignment 3/4 or 4/4
- Cooldown period passed (12+ bars since last signal)
Best Practices
Use probability crossovers of 50% as regime shift signals
Combine with price action - probability shows bias, price shows execution
MTF alignment is most reliable during trending markets
Confidence heatmap provides quick visual assessment of setup quality
Divergence signals add significant edge when combined with probability alignment
Ensemble probability provides longer-term context - use for position bias
Volatility regime scaling is critical - reduce size in high vol environments
Zero-lag line provides early warning of probability shifts
Histogram intensity shows conviction - larger bars = stronger bias
Indicator Limitations
For-loop analysis is computationally intensive - may slow on lower-end devices
Probability scores are based on historical patterns - unprecedented events can invalidate
MTF confluence requires sufficient data on all timeframes
Bayesian calculation assumes price behavior follows historical patterns
High volatility reduces probability reliability - regime scaling helps but doesn't eliminate
Divergence detection requires clear pivot formation - may lag in choppy markets
Confidence scoring is multi-factor but still probabilistic - not deterministic
Zero-lag calculation can produce whipsaws during consolidation
Technical Implementation
Built with Pine Script v6 using:
Custom for-loop historical analysis across 1-70 bars
Bayesian probability calculation with evidence-based inference
Multi-timeframe security requests for 5m, 15m, 60m confluence
Ensemble for-loop analysis with weighted averaging (30, 70, 150 bars)
ATR-based volatility regime classification with percentile ranking
RSI divergence detection using pivot analysis
Multi-factor confidence scoring (probability, MTF, divergence, regime)
Zero-lag EMA calculation for early signal detection
Gradient histogram with dynamic coloring based on probability
Confidence heatmap background with intensity scaling
Signal cooldown system (12 bars minimum) to prevent overtrading
The code is fully open-source and can be modified to suit individual trading styles.
Originality Statement
This indicator is original in its probabilistic bias quantification approach. While for-loop analysis and Bayesian probability are established concepts, this indicator is justified because:
It combines systematic for-loop historical analysis with Bayesian probability theory for statistical rigor
The ensemble for-loop system (30, 70, 150 bars) with weighted averaging is unique
Multi-timeframe confluence detection provides conviction measurement across 4 timeframes
Volatility regime scaling adjusts probability scores based on market environment
Divergence confirmation layer adds reversal detection to directional bias
Multi-factor confidence scoring (probability + MTF + divergence + regime) synthesizes all components
Zero-lag overlay provides early warning system for probability shifts
Confidence heatmap visualization makes setup quality immediately apparent
Each component contributes unique information: for-loop shows historical position, Bayesian quantifies probability, MTF shows conviction, ensemble adds robustness, volatility scales for regime, divergence confirms reversals, confidence synthesizes quality, and zero-lag provides early warning. The indicator's value lies in presenting these complementary perspectives simultaneously with unified probabilistic framework.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Probability scores do not guarantee outcomes. Trading involves substantial risk of loss. Past performance does not guarantee future results. Always use proper risk management and never risk more than you can afford to lose.
-Made with passion by officialjackofalltrades
Indicator
Probability-Based Adaptive Detection🙏🏻 PBAD (Probability-Based Adaptive Detection) : adaptive control tool for outliers || novelty detection, made for worst case data & processes, for the highest time complexity O(n^2) compared with the alternatives (would be explained in a sec). Thresholds are completely data driven and axiomatic, no need in provided hyperparameters, are not learned or optimized. The method accepts multiple weights, e.g. both temporal and volatility weights.
Method briefly explained (I can go deeper if any1 asks explicitly):
Performs weighted KDE on initial input data, finds KDE global maximum (mode), creates new “residuals” dataset by centering initial data around this value;
Performs weighted KDE on residuals, uses sigmoid based probability mass targets with increasing probability coverage to construct a set of non-disjoint High Density Intervals (also called HDR, HPD in Bayesian terms);
Uses these intervals to calculate analogs of centralized & standardized moments;
Uses these ^^ moments to construct a set of control thresholds. The scheme used in PBAD is not only based on a central threshold, or on neighboring ones, it utilizes all previous thresholds, gaining more information.
...
The most important part is to understand whether you really need PBAD. Because even tho it seems to be the best one given highest algocomplexity, irl it would work worse in cases when it’s not required by your data.
Here’s the menu (aka taxonomy omg) of methods you can use that would let you make the right choice:
Moment-Based Adaptive Detection (MBAD) :
Norm: L2
Time complexity: original O(n), successfully reduced to O(1) in online version
Use case: default, general purpose
Based on: method of moments (powers of residuals from mean)
Thresholds architecture: centralized
Quantile-Based Adaptive Detection (QBAD):
Norm: L1
Time complexity: O(nlogn)
Use case: either bad data Or process instability
Based on: quantile moments (dyadic percentiles of residuals from median)
Thresholds architecture: chained/recursive/sequential
Probability-Based Adaptive Detection (PBAD):
Norm: L0
Time complexity: O(n^2)
Use case: both bad data And process instability
Based on: probability moments (target probability masses of residuals from KDE mode)
Thresholds architecture: decentralized (for lack of a better name xd, the idea is that these thresholds gain information from the all other threshold and are Not exclusively based on the central or neighboring thresholds)
...
Examples of true use cases:
^^ an appropriate financial instrument to use PBAD
^^ and another one
...
Additional details about how to use it:
Keep the student5 kernel, it’s the best you can do. I added others mostly for comparisons and if you want to use the tool Not for its primary purpose (on a fine data)
“Calculate for N bars” and “Starting at bar N” options allow to reduce calculation period only on the N number of last bars or next bars from a chosen one. It's vital, because calculations here are heavy
Keep plotting offset at 1 (allows to visually compare current bar with the previous threshold values). This is the way it should be done on price data.
HLC3 is the optimal source input, unless you want to use your own better one point estimate of each datapoint (in the best case done by using PBAD itself on OHLC+ values).
In essence it should be used just like MBAD or QBAD, fade/push extensions and limit, fade/push/skip deviations & basis, or other strategies of your. Again, the only reason for 3 methods to exist is to be chosen for according data characteristics.
Btw:
This is the initial version, I don’t consider it perfected tbh, even tho it works as expected, however this method is very situational anyways.
In this script KDE function is modified to ensure the outcoming probabilities Do sum up to 1. I didn’t do this normalization in Weighted KDE Mode script , but there it’s not required since we just need a KDE global max.
see ya
∞
Indicator
Market Participation Index [PhenLabs]📊 Market Participation Index
Version: PineScript™ v6
📌 Description
Market Participation Index is a well-evolved statistical oscillator that constantly learns to develop by adapting to changing market behavior through the intricate mathematical modeling process. MPI combines different statistical approaches and Bayes’ probability theory of analysis to provide extensive insight into market participation and building momentum. MPI combines diverse statistical thinking principles of physics and information and marries them for subtle changes to occur in markets, levels to become influential as important price targets, and pattern divergences to unveil before it is visible by analytical methods in an old-fashioned methodology.
🚀 Points of Innovation:
Automatic market condition detection system with intelligent preset selection
Multi-statistical approach combining classical and advanced metrics
Fractal-based divergence system with quality scoring
Adaptive threshold calculation using statistical properties of current market
🚨 Important🚨
The ‘Auto’ mode intelligently selects the optimal preset based on real-time market conditions, if the visualization does not appear to the best of your liking then select the option in parenthesis next to the auto mode on the label in the oscillator in the settings panel.
🔧 Core Components
Statistical Foundation: Multiple statistical measures combined with weighted approach
Market Condition Analysis: Real-time detection of market states (trending, ranging, volatile)
Change Point Detection: Bayesian analysis for finding significant market structure shifts
Divergence System: Fractal-based pattern detection with quality assessment
Adaptive Visualization: Dynamic color schemes with context-appropriate settings
🔥 Key Features
The indicator provides comprehensive market analysis through:
Multi-statistical Oscillator: Combines Z-score, MAD, and fractal dimensions
Advanced Statistical Components: Includes skewness, kurtosis, and entropy analysis
Auto-preset System: Automatically selects optimal settings for current conditions
Fractal Divergence Analysis: Detects and grades quality of divergence patterns
Adaptive Thresholds: Dynamically adjusts overbought/oversold levels
🎨 Visualization
Color-coded Oscillator: Gradient-filled oscillator line showing intensity
Divergence Markings: Clear visualization of bullish and bearish divergences
Threshold Lines: Dynamic or fixed overbought/oversold levels
Preset Information: On-chart display of current market conditions
Multiple Color Schemes: Modern, Classic, Monochrome, and Neon themes
Classic
Modern
Monochrome
Neon
📖 Usage Guidelines
The indicator offers several customization options:
Market Condition Settings:
Preset Mode: Choose between Auto-detection or specific market condition presets
Color Theme: Select visual theme matching your chart style
Divergence Labels: Choose whether or not you’d like to see the divergence
✅ Best Use Cases:
Identify potential market reversals through statistical divergences
Detect changes in market structure before price confirmation
Filter trades based on current market condition (trending vs. ranging)
Find optimal entry and exit points using adaptive thresholds
Monitor shifts in market participation and momentum
⚠️ Limitations
Requires sufficient historical data for accurate statistical analysis
Auto-detection may lag during rapid market condition changes
Advanced statistical calculations have higher computational requirements
Manual preset selection may be required in certain transitional markets
💡 What Makes This Unique
Statistical Depth: Goes beyond traditional indicators with advanced statistical measures
Adaptive Intelligence: Automatically adjusts to current market conditions
Bayesian Analysis: Identifies statistically significant change points in market structure
Multi-factor Approach: Combines multiple statistical dimensions for confirmation
Fractal Divergence System: More robust than traditional divergence detection methods
🔬 How It Works
The indicator processes market data through four main components:
Market Condition Analysis:
Evaluates trend strength, volatility, and price patterns
Automatically selects optimal preset parameters
Adapts sensitivity based on current conditions
Statistical Oscillator:
Combines multiple statistical measures with weights
Normalizes values to consistent scale
Applies adaptive smoothing
Advanced Statistical Analysis:
Calculates higher-order statistical moments
Applies information-theoretic measures
Detects distribution anomalies
Divergence Detection:
Uses fractal theory to identify pivot points
Detects and scores divergence quality
Filters signals based on current market phase
💡 Note:
The Market Participation Index performs optimally when used across multiple timeframes for confirmation. Its statistical foundation makes it particularly valuable during market transitions and periods of changing volatility, where traditional indicators often fail to provide clear signals.
Indicator
Bayesian TrendEnglish Description (primary)
1. Overview
This script implements a Naive Bayesian classifier to estimate the probability of an upcoming bullish, bearish, or neutral move. It combines multiple indicators—RSI, MACD histogram, EMA price difference in ATR units, ATR level vs. its average, and Volume vs. its average—to calculate likelihoods for each market direction. Each indicator is “binned” (categorized into discrete zones) and assigned conditional probabilities for bullish/bearish/neutral scenarios. The script then normalizes these probabilities and paints bars in green if bullish is most likely, red if bearish is most likely, or blue if neutral is most likely. A small table is also displayed in the top-right corner of the chart, showing real-time probabilities.
2. How it works
Indicator Calculations: The script calculates RSI, MACD (line and histogram), EMA, ATR, and Volume metrics.
Binning: Each metric is converted into a discrete category (e.g., low, medium, high). For example, RSI < 30 is binned as “low,” while RSI > 70 is binned as “high.”
Conditional Probabilities: User-defined tables specify the conditional probabilities of each bin under three hypotheses (Up, Down, Neutral).
Naive Bayesian Formula: The script multiplies the relevant conditional probabilities, normalizes them, and derives the final probabilities (Up, Down, or Neutral).
Visualization:
Bar Colors: Bars are green when the Up probability exceeds 50%, red for Down, and blue otherwise.
Table: Displays numeric probabilities of Up, Down, and Neutral in percentage terms.
3. How to use it
Add the script to your chart.
Observe the colored bars:
Green suggests a higher probability for bullish movement.
Red suggests a higher probability for bearish movement.
Blue indicates a higher probability of sideways or uncertain conditions.
Check the table in the top-right corner to see exact probabilities (Up/Down/Neutral).
Use the input settings to adjust thresholds (RSI, MACD, Volume, etc.), define alert conditions (e.g., when Up probability crosses 50%), and decide whether to trigger alerts on bar close or in real-time.
4. Originality and usefulness
Originality: This script uniquely applies a Naive Bayesian approach to a blend of classic and volume-based indicators. It demonstrates how different indicator “zones” can be combined to produce probabilistic insights.
Usefulness: Traders can interpret the probability breakdown to gauge the script’s bias. Unlike single indicators, this approach synthesizes several signals, potentially offering a more holistic perspective on market conditions.
5. Limitations
The conditional probabilities are manually assigned and may not reflect actual market behavior across all instruments or timeframes.
Results depend on the user’s choice of thresholds and indicator settings.
Like any indicator, past performance does not guarantee future results. Always confirm signals with additional analysis.
6. Disclaimer
This script is intended for educational and informational purposes only. It does not constitute financial advice. Trading involves significant risk, and you should make decisions based on your own analysis. Neither the script’s author nor PulseWire is liable for any financial losses.
Русское описание (Russian translation, optional)
Этот индикатор реализует наивный Байесовский классификатор для оценки вероятности предстоящего роста (Up), падения (Down) или бокового движения (Neutral). Он комбинирует несколько индикаторов—RSI, гистограмму MACD, разницу цены и EMA в единицах ATR, уровень ATR относительно своего среднего значения и объём относительно своего среднего—чтобы вычислить вероятности для каждого направления рынка. Каждый индикатор делится на «зоны» (low, mid, high), которым приписаны условные вероятности для бычьего/медвежьего/нейтрального исхода. Скрипт нормирует эти вероятности и раскрашивает бары в зелёный, красный или синий цвет в зависимости от того, какая вероятность выше. Также в правом верхнем углу отображается таблица с текущими значениями вероятностей.
Indicator
Naive Bayes Candlestick Pattern Classifier v1.1 BETAAn intermezzo on why i made this script publication..
A : Candlestick Pattern took hours to backtest, why not using Machine Learning techniques?
B : Machine Learning, no that's gonna be really heavy bro!
A : Not really, because we use Naive Bayes.
B : The simplest, yet powerful machine learning algorithm to separate (a.k.a classify) multivariate data.
----------------------------------------------------------------------------------------------------------------------
Hello, everyone!
After deep research in extracting meaningful information from the market, I ended up building this powerful machine learning indicator based on the evolution of Bayesian Statistics. This indicator not only leverages the simplicity of Naive Bayes but also extends its application to candlestick pattern analysis, making it an invaluable tool for traders who are looking to enhance their technical analysis without spending countless hours manually backtesting each pattern on each market!.
What most interesting part is actually after learning all of likely useless methods like fibonacci, supply and demand, volume profile, etc. We always ended up back to basic like support and resistance and candlestick patterns, but with a slight twist on strategy algorithm design and statistical approach. Thus, the only reason why i made this, because i exactly know that you guys will ended up in this position as time goes by.
The essence of this indicator lies in its ability to automate the recognition and statistical evaluation of various candlestick patterns. Traditionally, traders have relied on visual inspection and manual backtesting to determine the effectiveness of patterns like Bullish Engulfing, Bearish Engulfing, Harami variations, Hammer formations, and even more complex multi-candle patterns such as Three White Soldiers, Three Black Crows, Dark Cloud Cover, and Piercing Pattern. However, these conventional methods are both time-consuming and prone to subjective bias.
To address these challenges, I employed Naive Bayes—a probabilistic classifier that, despite its simplicity, offers robust performance in various domains. Naive Bayes assumes that each feature is independent of the others given the class label, which, although a strong assumption, works remarkably well in practice, especially when the dataset is large like market data and the feature space is high-dimensional. In our case, each candlestick pattern acts as a feature that can be statistically evaluated based on its historical performance. The indicator calculates a probability that a given pattern will lead to a price reversal, by comparing the pattern’s close price to the highest or lowest price achieved in a lookahead window.
One of the standout features of this script is its flexibility. Each candlestick pattern is not only coded into the system but also comes with individual toggles to enable or disable them based on your trading strategy. This means you can choose to focus on single-candle patterns like Bullish Engulfing or more complex multi-candle formations such as Three White Soldiers, without modifying the core code. The built-in customization options allow you to adjust colors and labels for each pattern, giving you the freedom to tailor the visual output to your preference. This level of customization ensures that the indicator integrates seamlessly into your existing PulseWire setup.
Moreover, the indicator isn’t just about pattern recognition—it also incorporates outcome-based learning. Every time a pattern is detected, it looks ahead a predefined number of bars to evaluate if the expected reversal actually materialized. This outcome is then stored in arrays, and over time, the script dynamically calculates the probability of success for each pattern. These probabilities are presented in a real-time updating table on your chart, which shows not only the percentage probability but also the count of historical occurrences. With this information at your fingertips, you can quickly gauge the reliability of each pattern in your chosen market and timeframe.
Another significant advantage of this approach is its speed and efficiency. While more complex machine learning models like neural networks might require heavy computational resources and longer training times, the Naive Bayes classifier in this script is lightweight, instantaneous and can be updated on the fly with each new bar. This real-time capability is essential for modern traders who need to make quick decisions in fast-paced markets.
Furthermore, by automating the process of backtesting, the indicator frees up your time to focus on other aspects of trading strategy development. Instead of manually analyzing hundreds or even thousands of candles, you can rely on the statistical power of Naive Bayes to provide you with insights on which patterns are most likely to result in profitable moves. This not only enhances your efficiency but also helps to eliminate the cognitive biases that often plague manual analysis.
In summary, this indicator represents a fusion of traditional candlestick analysis with modern machine learning techniques. It harnesses the simplicity and effectiveness of Naive Bayes to deliver a dynamic, real-time evaluation of various candlestick patterns. Whether you are a seasoned trader looking to refine your technical analysis or a beginner eager to understand market dynamics, this tool offers a powerful, customizable, and efficient solution. Welcome to a new era where advanced statistical methods meet practical trading insights—happy trading and may your patterns always be in your favor!
Note : On this current released beta version, you must manually adjust reversal percentage move based on each market. Further updates may include automated best range detection and probability.
Indicator
smolka Bayesian Volatile ChannelDescription in English and Russian.
Bayesian Volatile Channel
The script is a loose interpretation of Bayes' theorem, which allows calculating the probability of events given that another event related to it has occurred, the script analyzes volatility and detects anomalies in price charts using a Bayesian approach, updating the model parameters to accurately estimate market fluctuations and detect changes in trends.
How does it work?
1. The script sets the initial parameters (mean price and standard deviation), creating a "hypothesis" about the market behavior.
2. When a new price appears, the script calculates the probability of its compliance with previous expectations. If the new price differs from the forecast, the model parameters (mean and standard deviation) are updated.
3. After updating the model, the probability that the current price and volatility correspond to a normal distribution is calculated.
4. Based on the updated model, volatility channels are built (mean price ± two standard deviations). If the price goes beyond these limits, this signals a possible anomaly indicating changes in the market.
5. The moving averages in the script act as data smoothing and trend analysis, helping to identify the market direction and minimize the impact of random fluctuations. The script uses moving averages to identify uptrends and downtrends, and calculates the average between them to display the overall market balance. These moving averages make market analysis clearer and more resistant to short-term fluctuations.
******************************************************************
Описание на английском и русском языках.
Байесовский волатильный канал
Скрипт является вольной интерпретацией теоремы Байеса, которая позволяет расчитать вероятность событий при условии, что произошло связанное с ним другое событие, скрипт анализирует волатильность и обнаруживает аномалии в графиках цен, используя байесовский подход, обновляя параметры модели для точной оценки рыночных колебаний и обнаружения изменений в тенденциях.
Как это работает?
1. Скрипт устанавливает начальные параметры (среднюю цену и стандартное отклонение), создавая "гипотезу" о поведении рынка.
2. При появлении новой цены скрипт вычисляет вероятность её соответствия предыдущим ожиданиям. Если новая цена отличается от прогноза, параметры модели (среднее и стандартное отклонение) обновляются.
3. После обновления модели рассчитывается вероятность того, что текущая цена и волатильность соответствуют нормальному распределению.
4. На основе обновлённой модели строятся каналы волатильности (средняя цена ± два стандартных отклонения). Если цена выходит за эти пределы, это сигнализирует о возможной аномалии, указывающей на изменения на рынке.
5. Средние скользящие в скрипте выполняют роль сглаживания данных и анализа трендов, помогая выявить направление рынка и минимизировать влияние случайных колебаний. Скрипт использует скользящие средние для определения восходящего и нисходящего трендов, а также рассчитывает среднее значение между ними для отображения общего баланса рынка. Эти скользящие средние делают анализ рынка более чётким и устойчивым к краткосрочным флуктуациям.
Indicator
Bayesian Trend Indicator [ChartPrime]Bayesian Trend Indicator
Overview:
In probability theory and statistics, Bayes' theorem (alternatively Bayes' law or Bayes' rule), named after Thomas Bayes, describes the probability of an event, based on prior knowledge of conditions that might be related to the event.
The "Bayesian Trend Indicator" is a sophisticated technical analysis tool designed to assess the direction of price trends in financial markets. It combines the principles of Bayesian probability theory with moving average analysis to provide traders with a comprehensive understanding of market sentiment and potential trend reversals.
At its core, the indicator utilizes multiple moving averages, including the Exponential Moving Average (EMA), Simple Moving Average (SMA), Double Exponential Moving Average (DEMA), and Volume Weighted Moving Average (VWMA) . These moving averages are calculated based on user-defined parameters such as length and gap length, allowing traders to customize the indicator to suit their trading strategies and preferences.
The indicator begins by calculating the trend for both fast and slow moving averages using a Smoothed Gradient Signal Function. This function assigns a numerical value to each data point based on its relationship with historical data, indicating the strength and direction of the trend.
// Smoothed Gradient Signal Function
sig(float src, gap)=>
ta.ema(source >= src ? 1 :
source >= src ? 0.9 :
source >= src ? 0.8 :
source >= src ? 0.7 :
source >= src ? 0.6 :
source >= src ? 0.5 :
source >= src ? 0.4 :
source >= src ? 0.3 :
source >= src ? 0.2 :
source >= src ? 0.1 :
0, 4)
Next, the indicator calculates prior probabilities using the trend information from the slow moving averages and likelihood probabilities using the trend information from the fast moving averages . These probabilities represent the likelihood of an uptrend or downtrend based on historical data.
// Define prior probabilities using moving averages
prior_up = (ema_trend + sma_trend + dema_trend + vwma_trend) / 4
prior_down = 1 - prior_up
// Define likelihoods using faster moving averages
likelihood_up = (ema_trend_fast + sma_trend_fast + dema_trend_fast + vwma_trend_fast) / 4
likelihood_down = 1 - likelihood_up
Using Bayes' theorem , the indicator then combines the prior and likelihood probabilities to calculate posterior probabilities, which reflect the updated probability of an uptrend or downtrend given the current market conditions. These posterior probabilities serve as a key signal for traders, informing them about the prevailing market sentiment and potential trend reversals.
// Calculate posterior probabilities using Bayes' theorem
posterior_up = prior_up * likelihood_up
/
(prior_up * likelihood_up + prior_down * likelihood_down)
Key Features:
◆ The trend direction:
To visually represent the trend direction , the indicator colors the bars on the chart based on the posterior probabilities. Bars are colored green to indicate an uptrend when the posterior probability is greater than 0.5 (>50%), while bars are colored red to indicate a downtrend when the posterior probability is less than 0.5 (<50%).
◆ Dashboard on the chart
Additionally, the indicator displays a dashboard on the chart , providing traders with detailed information about the probability of an uptrend , as well as the trends for each type of moving average. This dashboard serves as a valuable reference for traders to monitor trend strength and make informed trading decisions.
◆ Probability labels and signals:
Furthermore, the indicator includes probability labels and signals , which are displayed near the corresponding bars on the chart. These labels indicate the posterior probability of a trend, while small diamonds above or below bars indicate crossover or crossunder events when the posterior probability crosses the 0.5 threshold (50%).
The posterior probability of a trend
Crossover or Crossunder events
◆ User Inputs
Source:
Description: Defines the price source for the indicator's calculations. Users can select between different price values like close, open, high, low, etc.
MA's Length:
Description: Sets the length for the moving averages used in the trend calculations. A larger length will smooth out the moving averages, making the indicator less sensitive to short-term fluctuations.
Gap Length Between Fast and Slow MA's:
Description: Determines the difference in lengths between the slow and fast moving averages. A higher gap length will increase the difference, potentially identifying stronger trend signals.
Gap Signals:
Description: Defines the gap used for the smoothed gradient signal function. This parameter affects the sensitivity of the trend signals by setting the number of bars used in the signal calculations.
In summary, the "Bayesian Trend Indicator" is a powerful tool that leverages Bayesian probability theory and moving average analysis to help traders identify trend direction, assess market sentiment, and make informed trading decisions in various financial markets.
Indicator
Bayesian BBSMA + nQQE Oscillator + Bank funds (whales detector)Three trend indicators in one. Fork of Gunslinger2005 indicator, with a fix to display the nQQE oscillator correctly and clearly, and converted to pinescript v5 (allowing to set a different timeframe and gaps).
How to use: Essentially, nQQE is a long term trend indicator which is more adequate in daily or weekly timeframe to indicate the current market cycle. Banker Fund seems better suited to indicate current local trend, although it is sensitive to relief rallies. Bayesian BBSMA is an awesome tool to visualize the buildup in bullish/bearish sentiment, and when it is more likely to get released, however it is unreliable, so it needs to be combined with other indicators.
Please show the original indicators some love:
Bayesian BBSMA:
nQQE:
L3 Banker Fund Flow Trend:
Originally mixed together by Gunslinger2005:
Indicator
The Bayesian Q OscillatorFirst of all the biggest thanks to @tista and @KivancOzbilgic for publishing their open source public indicators Bayesian BBSMA + nQQE Oscillator. And a mighty round of applause for @MarkBench for once again being my superhero pinescript guy that puts these awesome combination Ideas and ES stradegies in my head together. Now let me go ahead and explain what we have here.
I am gonna call it the Bayesian Q Oscillator I suppose. The goal of the script is to solve an issue both indicators on their own suffer from. QQE signals are not new and often the problem has always been false signals for them. They are good for scalping but the difference between a quality move and a small to nearly nonexistent move following a signal is not so clear. Kivanc made his normalized version to help reduce this problem by adding colors to his histogram type verision that would essentially represent if price was a trending move or in a ranging structure. As you can see I have kept this Idea but instead opted for lines as the oscillator. two yellow line (default color) is a ranging sideways area and when there is red or green it is trending up or down. I wanted to take this to the next level with combining the Bayesian probability oscillator that tista put together.
The Bayesian indicator is the opposite for its issue as it is a probability indicator that shows which candle or price movement is more likely to come next. Red rising means possibly down move soon and green means up soon. I will not go into the complex details of this indicator but will suggest others take a look at his and others to understand the idea behind them. The point I am driving at is that it show probabilities or likelyhood without the most effecient signal device to match it. This original was line form and now it is background filled colors.
The idea. is that you can potentially get some stronger and more accurate reversal signals with these two paired together. when you see a sell signal or cross with the towering or rising red... maybe it is a good jump potentially. The same for green. At the same time it is a double added filter effect from just having yellow represent it is ranging... but now if you get a buy signal (example) and have yellow lines (example) along wi5h a red rising or mountain color background... it not only is an indication of ranging, but also that there is potentially even a counter move coming based on the probabilities. Also if you get into a good trade and see dual yellow qqe crosses with no color represented by the bayesian background... it is possible it might only be noise.
I have found them to work decently in the 1 hour timframe. Let me know your experience.
I hope everyone takes a look at the originals to understand them. Full credit goes to those guys for this to be here. Let me know how it is working out for you.
Here are the original links.
bayesian
Normalized QQE
Indicator
Bayesian BBSMA OscillatorSometime ago (very long ago), one of my tinkering project was to do a spam or ham classification type app to filter news I'd wanna read. So I built myself a Naive Bayes Classifier to feed me my relevant articles. It worked great, I can cut through the noise.
The hassle was I needed to manually train it to understand what I wanna read. I trained it using 50 articles and to my surprise, it's enough.
Complexity Theory
I've been reading a book called The Road to Ruin by Jim Rickards. He described how he got to his conclusion of how the stock market works by using Complexity Theory. Bill Williams would agree. Jim tells us that by using just enough data, we calculate the probability of an event to occur. We can't say for sure when but we know it's coming. This was my light bulb moment.
While Jim talks much about Bayesian Inference in which a probability of an event can always be updated as more evidence comes to light, I had my eyes set on binary probabilities of when prices are going up and down.
Assumptions
These are my assumptions:
Prices breaking up a Bollinger basis line will have fuel to go up even higher
Prices will go down when prices have broken up a Bollinger upper band
Scalping is the main method so we should use a lower period Moving Average (MA)
When prices are above MA, it's likelier a correction to the downside is imminent
When prices are below MA, it's likelier a correction to the upside is imminent
Optimize parameters for 1 hour timeframe which will give us time to react while still having more opportunities to trade
Building Blocks
Jim Rickards started with limited data (events) while in technical trading, data are plentiful. I decided to classify 2 events which are:
Next candles would be breaking up
Next candles would be breaking down
Key facts:
We won't know for sure when prices are going to break
We won't know for sure how much the prices movements are going to be
Formulas
Breaking up:
Pr(Up|Indicator) = Pr(Indicator|Up) * Pr(Up) / Pr(Indicator|Up) * Pr(Up) + Pr(Indicator|Down) * Pr(Down)
Breaking down:
Pr(Down|Indicator) = Pr(Indicator|Down) * Pr(Down) / Pr(Indicator|Down) * Pr(Down) + Pr(Indicator|Up) * Pr(Up)
Reading The Oscillator
Green is the probability of prices breaking up
Red is the probability of prices breaking down
When either green or red is flatlining ceiling, immediately on the next candle when the probability decreases go short or long based on which direction you're observing - Strong Signal
When either green or red is flatlining ceiling, take no action while it's ceiled
Usually when either green or red is flatlining bottom, the next candle when the probability increases, immediately take a short long position based on the direction you're observing - Weak Signal
When either green or red is flatlining bottom, take no action while it's bottomed
Alerts
Use Once per Bar option when generating alerts.













