BPS Multi-MA 5 — 22/30, SMA/WMA/EMA# Multi-MA 5 — 22/30 base, SMA/WMA/EMA
**What it is**
A lightweight 5-line moving-average ribbon for fast visual bias and trend/mean-reversion reads. You can switch the MA type (SMA/WMA/EMA) and choose between two ways of setting lengths: by monthly “session-based” base (22 or 30) with multipliers, or by entering exact lengths manually. An optional info table shows the effective settings in real time.
---
## How it works
* Calculates five moving averages from the selected price source.
* Lengths are either:
* **Multipliers mode:** `Base × Multiplier` (e.g., base 22 → 22/44/66/88/110), or
* **Manual mode:** any five exact lengths (e.g., 10/22/50/100/200).
* Plots five lines with fixed legend titles (MA1…MA5); the **info table** displays the actual type and lengths.
---
## Inputs
**Length Mode**
* **Multipliers** — choose a **Base** of **22** (≈ trading sessions per month) or **30** (calendar-style, smoother) and set **×1…×5** multipliers.
* **Manual** — enter **Len1…Len5** directly.
**MA Settings**
* **MA Type:** SMA / WMA / EMA
* **Source:** any series (e.g., `close`, `hlc3`, etc.)
* **Use true close (ignore Heikin Ashi):** when enabled, the MA is computed from the underlying instrument’s real `close`, not HA candles.
* **Show info table:** toggles the on-chart table with the current mode, type, base, and lengths.
---
## Quick start
1. Add the indicator to your chart.
2. Pick **MA Type** (e.g., **WMA** for faster response, **SMA** for smoother).
3. Choose **Length Mode**:
* **Multipliers:** set **Base = 22** for session-based monthly lengths (stocks/FX), or **30** for heavier smoothing.
* **Manual:** enter your exact lengths (e.g., 10/22/50/100/200).
4. (Optional) On **Heikin Ashi** charts, enable **Use true close** if you want the lines based on the instrument’s real close.
---
## Tips & notes
* **1 month ≈ 21–22 sessions.** Using 30 as “monthly” yields a smoother, more delayed curve.
* **WMA** reacts faster than **SMA** at the same length; expect earlier signals but more whipsaws in chop.
* **Len = 1** makes the MA track the chosen source (e.g., `close`) almost exactly.
* If changing lengths doesn’t move the lines, ensure you’re editing fields for the **active Length Mode** (Multipliers vs Manual).
* For clean comparisons, use the **same timeframe**. If you later wrap this in MTF logic, keep `lookahead_off` and handle gaps appropriately.
---
## Use cases
* Trend ribbon and dynamic bias zones
* Pullback entries to the mid/slow lines
* Crossovers (fast vs slow) for confirmation
* Volatility filtering by spreading lengths (e.g., 22/44/88/132/176)
---
**Credits:** Built for clarity and speed; designed around session-based “monthly” lengths (22) or smoother calendar-style (30).
"curve"に関するスクリプトを検索
Machine Learning BBPct [BackQuant]Machine Learning BBPct
What this is (in one line)
A Bollinger Band %B oscillator enhanced with a simplified K-Nearest Neighbors (KNN) pattern matcher. The model compares today’s context (volatility, momentum, volume, and position inside the bands) to similar situations in recent history and blends that historical consensus back into the raw %B to reduce noise and improve context awareness. It is informational and diagnostic—designed to describe market state, not to sell a trading system.
Background: %B in plain terms
Bollinger %B measures where price sits inside its dynamic envelope: 0 at the lower band, 1 at the upper band, ~ 0.5 near the basis (the moving average). Readings toward 1 indicate pressure near the envelope’s upper edge (often strength or stretch), while readings toward 0 indicate pressure near the lower edge (often weakness or stretch). Because bands adapt to volatility, %B is naturally comparable across regimes.
Why add (simplified) KNN?
Classic %B is reactive and can be whippy in fast regimes. The simplified KNN layer builds a “nearest-neighbor memory” of recent market states and asks: “When the market looked like this before, where did %B tend to be next bar?” It then blends that estimate with the current %B. Key ideas:
• Feature vector . Each bar is summarized by up to five normalized features:
– %B itself (normalized)
– Band width (volatility proxy)
– Price momentum (ROC)
– Volume momentum (ROC of volume)
– Price position within the bands
• Distance metric . Euclidean distance ranks the most similar recent bars.
• Prediction . Average the neighbors’ prior %B (lagged to avoid lookahead), inverse-weighted by distance.
• Blend . Linearly combine raw %B and KNN-predicted %B with a configurable weight; optional filtering then adapts to confidence.
This remains “simplified” KNN: no training/validation split, no KD-trees, no scaling beyond windowed min-max, and no probabilistic calibration.
How the script is organized (by input groups)
1) BBPct Settings
• Price Source – Which price to evaluate (%B is computed from this).
• Calculation Period – Lookback for SMA basis and standard deviation.
• Multiplier – Standard deviation width (e.g., 2.0).
• Apply Smoothing / Type / Length – Optional smoothing of the %B stream before ML (EMA, RMA, DEMA, TEMA, LINREG, HMA, etc.). Turning this off gives you the raw %B.
2) Thresholds
• Overbought/Oversold – Default 0.8 / 0.2 (inside ).
• Extreme OB/OS – Stricter zones (e.g., 0.95 / 0.05) to flag stretch conditions.
3) KNN Machine Learning
• Enable KNN – Switch between pure %B and hybrid.
• K (neighbors) – How many historical analogs to blend (default 8).
• Historical Period – Size of the search window for neighbors.
• ML Weight – Blend between raw %B and KNN estimate.
• Number of Features – Use 2–5 features; higher counts add context but raise the risk of overfitting in short windows.
4) Filtering
• Method – None, Adaptive, Kalman-style (first-order),
or Hull smoothing.
• Strength – How aggressively to smooth. “Adaptive” uses model confidence to modulate its alpha: higher confidence → stronger reliance on the ML estimate.
5) Performance Tracking
• Win-rate Period – Simple running score of past signal outcomes based on target/stop/time-out logic (informational, not a robust backtest).
• Early Entry Lookback – Horizon for forecasting a potential threshold cross.
• Profit Target / Stop Loss – Used only by the internal win-rate heuristic.
6) Self-Optimization
• Enable Self-Optimization – Lightweight, rolling comparison of a few canned settings (K = 8/14/21 via simple rules on %B extremes).
• Optimization Window & Stability Threshold – Governs how quickly preferred K changes and how sensitive the overfitting alarm is.
• Adaptive Thresholds – Adjust the OB/OS lines with volatility regime (ATR ratio), widening in calm markets and tightening in turbulent ones (bounded 0.7–0.9 and 0.1–0.3).
7) UI Settings
• Show Table / Zones / ML Prediction / Early Signals – Toggle informational overlays.
• Signal Line Width, Candle Painting, Colors – Visual preferences.
Step-by-step logic
A) Compute %B
Basis = SMA(source, len); dev = stdev(source, len) × multiplier; Upper/Lower = Basis ± dev.
%B = (price − Lower) / (Upper − Lower). Optional smoothing yields standardBB .
B) Build the feature vector
All features are min-max normalized over the KNN window so distances are in comparable units. Features include normalized %B, normalized band width, normalized price ROC, normalized volume ROC, and normalized position within bands. You can limit to the first N features (2–5).
C) Find nearest neighbors
For each bar inside the lookback window, compute the Euclidean distance between current features and that bar’s features. Sort by distance, keep the top K .
D) Predict and blend
Use inverse-distance weights (with a strong cap for near-zero distances) to average neighbors’ prior %B (lagged by one bar). This becomes the KNN estimate. Blend it with raw %B via the ML weight. A variance of neighbor %B around the prediction becomes an uncertainty proxy ; combined with a stability score (how long parameters remain unchanged), it forms mlConfidence ∈ . The Adaptive filter optionally transforms that confidence into a smoothing coefficient.
E) Adaptive thresholds
Volatility regime (ATR(14) divided by its 50-bar SMA) nudges OB/OS thresholds wider or narrower within fixed bounds. The aim: comparable extremeness across regimes.
F) Early entry heuristic
A tiny two-step slope/acceleration probe extrapolates finalBB forward a few bars. If it is on track to cross OB/OS soon (and slope/acceleration agree), it flags an EARLY_BUY/SELL candidate with an internal confidence score. This is explicitly a heuristic—use as an attention cue, not a signal by itself.
G) Informational win-rate
The script keeps a rolling array of trade outcomes derived from signal transitions + rudimentary exits (target/stop/time). The percentage shown is a rough diagnostic , not a validated backtest.
Outputs and visual language
• ML Bollinger %B (finalBB) – The main line after KNN blending and optional filtering.
• Gradient fill – Greenish tones above 0.5, reddish below, with intensity following distance from the midline.
• Adaptive zones – Overbought/oversold and extreme bands; shaded backgrounds appear at extremes.
• ML Prediction (dots) – The KNN estimate plotted as faint circles; becomes bright white when confidence > 0.7.
• Early arrows – Optional small triangles for approaching OB/OS.
• Candle painting – Light green above the midline, light red below (optional).
• Info panel – Current value, signal classification, ML confidence, optimized K, stability, volatility regime, adaptive thresholds, overfitting flag, early-entry status, and total signals processed.
Signal classification (informational)
The indicator does not fire trade commands; it labels state:
• STRONG_BUY / STRONG_SELL – finalBB beyond extreme OS/OB thresholds.
• BUY / SELL – finalBB beyond adaptive OS/OB.
• EARLY_BUY / EARLY_SELL – forecast suggests a near-term cross with decent internal confidence.
• NEUTRAL – between adaptive bands.
Alerts (what you can automate)
• Entering adaptive OB/OS and extreme OB/OS.
• Midline cross (0.5).
• Overfitting detected (frequent parameter flipping).
• Early signals when early confidence > 0.7.
These are purely descriptive triggers around the indicator’s state.
Practical interpretation
• Mean-reversion context – In range markets, adaptive OS/OB with ML smoothing can reduce whipsaws relative to raw %B.
• Trend context – In persistent trends, the KNN blend can keep finalBB nearer the mid/upper region during healthy pullbacks if history supports similar contexts.
• Regime awareness – Watch the volatility regime and adaptive thresholds. If thresholds compress (high vol), “OB/OS” comes sooner; if thresholds widen (calm), it takes more stretch to flag.
• Confidence as a weight – High mlConfidence implies neighbors agree; you may rely more on the ML curve. Low confidence argues for de-emphasizing ML and leaning on raw %B or other tools.
• Stability score – Rising stability indicates consistent parameter selection and fewer flips; dropping stability hints at a shifting backdrop.
Methodological notes
• Normalization uses rolling min-max over the KNN window. This is simple and scale-agnostic but sensitive to outliers; the distance metric will reflect that.
• Distance is unweighted Euclidean. If you raise featureCount, you increase dimensionality; consider keeping K larger and lookback ample to avoid sparse-neighbor artifacts.
• Lag handling intentionally uses neighbors’ previous %B for prediction to avoid lookahead bias.
• Self-optimization is deliberately modest: it only compares a few canned K/threshold choices using simple “did an extreme anticipate movement?” scoring, then enforces a stability regime and an overfitting guard. It is not a grid search or GA.
• Kalman option is a first-order recursive filter (fixed gain), not a full state-space estimator.
• Hull option derives a dynamic length from 1/strength; it is a convenience smoothing alternative.
Limitations and cautions
• Non-stationarity – Nearest neighbors from the recent window may not represent the future under structural breaks (policy shifts, liquidity shocks).
• Curse of dimensionality – Adding features without sufficient lookback can make genuine neighbors rare.
• Overfitting risk – The script includes a crude overfitting detector (frequent parameter flips) and will fall back to defaults when triggered, but this is only a guardrail.
• Win-rate display – The internal score is illustrative; it does not constitute a tradable backtest.
• Latency vs. smoothness – Smoothing and ML blending reduce noise but add lag; tune to your timeframe and objectives.
Tuning guide
• Short-term scalping – Lower len (10–14), slightly lower multiplier (1.8–2.0), small K (5–8), featureCount 3–4, Adaptive filter ON, moderate strength.
• Swing trading – len (20–30), multiplier ~2.0, K (8–14), featureCount 4–5, Adaptive thresholds ON, filter modest.
• Strong trends – Consider higher adaptive_upper/lower bounds (or let volatility regime do it), keep ML weight moderate so raw %B still reflects surges.
• Chop – Higher ML weight and stronger Adaptive filtering; accept lag in exchange for fewer false extremes.
How to use it responsibly
Treat this as a state descriptor and context filter. Pair it with your execution signals (structure breaks, volume footprints, higher-timeframe bias) and risk management. If mlConfidence is low or stability is falling, lean less on the ML line and more on raw %B or external confirmation.
Summary
Machine Learning BBPct augments a familiar oscillator with a transparent, simplified KNN memory of recent conditions. By blending neighbors’ behavior into %B and adapting thresholds to volatility regime—while exposing confidence, stability, and a plain early-entry heuristic—it provides an informational, probability-minded view of stretch and reversion that you can interpret alongside your own process.
GrayZone Sniper [CHE] — Breakout Validation System GrayZone Sniper — Breakout Validation System
Trade only the clean breakouts. Detect the sideways “gray zone,” wait for a confirmed breach, and act only when momentum (TFRSI) and range expansion (Mean Deviation) align. Clear long/short triggers, one-shot exit signals, and persistent levels keep your manual trading disciplined and repeatable.
Why it boosts manual trading
* No guesswork: Grey box marks consolidation; you trade the validated break.
* Fewer fakeouts: Triggers require momentum + volatility—not just a wick through a level.
* Rules > bias: Optional close-only signals stop intrabar noise.
* Built-in exits: One-shot LS/SS (Long/Short Stop) when conditions degrade.
* Actionable visuals: Gray-zone boxes, persistent highs/lows, and a smooth T3 trendline.
What it does (short + precise)
1. Maps consolidation as a gray box (running high/low while state is neutral).
2. Validates breakouts only when:
* Mean Deviation filter says current range expands vs. its own baseline, and
* TFRSI momentum is above 50 + deadzone (long) or below 50 − deadzone (short), and
* Price closes beyond the last gray high/low (optional close-only).
→ You get L (long) or S (short).
3. Manages exits with a smooth T3 trendline plus MD trend: when MD weakens and T3 turns against the prior side, you get a single LS/SS stop signal.
4. Extends structure: Last gray-zone H/L can persist as right-extended levels for retests/targets.
5. Ready for alerts: Prebuilt alert conditions for L, S, LS, SS.
Signals at a glance
* L – Long Trigger (validated breakout up)
* S – Short Trigger (validated breakout down)
* LS – Long Stop (exit hint for open long)
* SS – Short Stop (exit hint for open short)
Why TFRSI + Mean Deviation is a killer combo
They measure different, complementary things—and that reduces correlated errors.
* Mean Deviation (MD) = range expansion filter. It checks whether current absolute deviation of Typical Price from its SMA (|TP − SMA(TP)|) is greater than its own historical mean deviation baseline. In plain English: *is the market actually moving beyond its usual wiggle?* If not, most breakouts are noise.
* TFRSI = directional momentum around a 50 baseline, normalized and smoothed to react fast while avoiding raw RSI twitchiness.
* Synergy:
* MD confirms there’s energy (volatility regime has expanded).
* TFRSI confirms where that energy points (bull or bear).
* Requiring both gives you high-quality, directional expansion—the exact condition that tends to produce follow-through, while filtering the classic “thin break, immediate snap-back.”
Result: Fewer trades, better quality. You skip most range breaks without momentum or momentum pops without real expansion.
Inputs & Functions (clean overview)
Core: TFRSI & MD
* TFRSI Length (`tfrsiLen`, default 6): Longer = smoother, slower.
* TFRSI Smoothing (`tfrsiSignalLen`, default 2): SMA on TFRSI for cleaner signals.
* Mean Deviation Period (`mdLen`, default 20): Baseline for expansion filter.
* Use classical MD (`useTaDev`, default off):
* Off: MD vs current SMA (warning-free internal baseline).
* On: Classical `ta.dev` implementation.
* TFRSI Deadzone ± around 50 (`tfrsiDeadzone`, default 1.0): Wider deadzone = stricter momentum confirmation (less chop).
Triggers & Logic
* Trigger only on bar close (`fireOnCloseOnly`, default on): Confirmed signals only; no intrabar flicker.
* Reset gray bounds after trigger (`resetGrayBoundsAfterTrigger`, default on): Clears last gray H/L once a trade triggers.
* Auto-deactivate on neutral (`autoDeactivateOnNeutral`, default off): Strict disarm when state flips back to neutral.
Gray-Zone Boxes
* Show boxes (`showGrayBoxes`, default on): Draws the neutral consolidation box.
* Max boxes (`maxGrayBoxes`, default 10): How many historic boxes to keep.
* Transparency (`boxFillTransp`/`boxBorderTransp`, defaults 85/30): Visual tuning.
Trendline (T3)
* T3 Length (`t3Length`, default 3): Smoothing depth (higher = smoother).
* T3 Volume Factor (`t3VolumeFactor`, default 0.7): Controls responsiveness of the T3 curve.
Persistent Levels
* Persist gray H/L (`saveGrayLevels`, default on): Extend last gray high/low to the right.
* Max saved level pairs (`maxSavedGrayLvls`, default 1): How many H/L pairs to keep.
* Reset levels on trigger (`resetLevelsOnTrig`, default off): Clean slate after new trigger.
Debug & Visuals
* Show debug markers (`showDebugMarkers`, default on): Display L/S/LS/SS in the pane.
* Show legend (`showLegend`, default on): Compact legend (top-right).
How to trade it (practical)
1. Keep close-only on. Let the market finish the candle.
2. Wait for a clean gray box. Let the range define itself.
3. Take only L/S triggers where MD filter passes and TFRSI confirms.
4. Use persistent levels for retests/partials/targets.
5. Respect LS/SS. When expansion fades and T3 turns, exit without debate.
Tuning tips:
* More chop? Increase `tfrsiDeadzone` or `mdLen`.
* Want faster entries? Slightly reduce `t3Length` or deadzone, but expect more noise.
* Works across assets/timeframes (crypto/FX/indices/equities).
Bottom line
GrayZone Sniper enforces a simple, robust rule: Don’t touch the market until it breaks a defined range with real expansion and aligned momentum. That’s why TFRSI + Mean Deviation is hard to beat—and why your manual breakout trades get cleaner, calmer, and more consistent.
Disclaimer:
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
Enhance your trading precision and confidence with Triple Power Stop (CHE)! 🚀
Happy trading
Chervolino
Combined Futures Open Interest [Sam SDF-Solutions]The Combined Futures Open Interest indicator is designed to provide comprehensive analysis of market positioning by aggregating open interest data from the two nearest futures contracts. This dual-contract approach captures the complete picture of market participation, including rollover dynamics between front and back month contracts, offering traders crucial insights into institutional positioning and market sentiment.
Key Features:
Dual-Contract Aggregation: Automatically identifies and combines open interest from the first and second nearest futures contracts (e.g., ES1! + ES2!), providing a complete view of market positioning that single-contract analysis might miss.
Multi-Period Analysis: Tracks open interest changes across multiple timeframes:
1 Day: Immediate market sentiment shifts
1 Week: Short-term positioning trends
1 Month: Medium-term institutional flows
3 Months: Quarterly positioning aligned with contract expiration cycles
Smart Data Handling: Utilizes last known values when data is temporarily unavailable, preventing false signals from data gaps while clearly indicating when stale data is being used.
EMA Smoothing: Incorporates a customizable Exponential Moving Average (default 65 periods) to identify the underlying trend in open interest, filtering out daily noise and highlighting significant deviations.
Dynamic Visualization:
Color-coded main line showing directional changes (green for increases, red for decreases)
Optional fill areas between OI and EMA to visualize momentum
Separate contract lines for detailed rollover analysis
Customizable labels for significant percentage changes
Comprehensive Information Table: Displays real-time statistics including:
Current total open interest across both contracts
Period-over-period changes in absolute and percentage terms
EMA deviation metrics
Visual status indicators for quick assessment
Contract symbols and data quality warnings
Alert System: Configurable alerts for:
Significant daily changes (customizable threshold)
EMA crossovers indicating trend changes
Large percentage movements suggesting institutional activity
How It Works:
Contract Detection: The indicator automatically identifies the base futures symbol and constructs the appropriate contract codes for the two nearest expirations, or accepts manual symbol input for non-standard contracts.
Data Aggregation: Open interest data from both contracts is retrieved and summed, providing a complete picture that accounts for positions rolling between contracts.
Historical Comparison: The indicator calculates changes from multiple lookback periods (1/5/22/66 days) to show how positioning has evolved across different time horizons.
Trend Analysis: The EMA overlay helps identify whether current open interest is above or below its smoothed average, indicating momentum in position building or reduction.
Visual Feedback: The main line changes color based on daily changes, while the optional table provides detailed numerical analysis for traders requiring precise data.
___________________
This indicator is essential for futures traders, particularly those focused on index futures, commodities, or currency futures where understanding the aggregate positioning across nearby contracts is crucial. It's especially valuable during rollover periods when positions shift between contracts, and for identifying institutional accumulation or distribution patterns that single-contract analysis might miss. By combining multiple timeframe analysis with intelligent data handling and clear visualization, it simplifies the complex task of monitoring open interest dynamics across the futures curve.
SwingTrade ADX Strategy v6This is a swing trading strategy that combines VWAP (Volume Weighted Average Price), ADX (Average Directional Index) for trend strength, and volume ratios to generate long/short entry and exit signals. It's designed for daily charts but can be adapted.
#### Key Features:
- **Entries**: Based on VWAP crossovers, rising/falling delta (price deviation from VWAP), ADX trend confirmation, and volume ratios.
- **Exits**: Dynamic exits when VWAP delta reverses after a peak.
- **Filters**: Optional toggles for VWAP signals, ADX, and volume. Backtest date range for custom periods.
- **Visuals**: VWAP line, signal shapes/labels, and an info panel showing key metrics (VWAP Delta %, ADX, Volume Ratio).
- **Alerts**: Built-in alerts for buy/sell entries and exits.
#### How to Use:
1. Apply to your chart (e.g., stocks, forex, crypto).
2. Adjust parameters in the settings (e.g., ADX threshold, volume period).
3. Enable/disable indicators as needed.
4. Backtest using the date filters and review equity curve.
**Disclaimer**: This is for educational purposes only. Past performance is not indicative of future results. Not financial advice—trade at your own risk. Backtest thoroughly and use with proper risk management.
Feedback welcome! If you find it useful, give it a like.
Bitcoin Power Law [LuxAlgo]The Bitcoin Power Law tool is a representation of Bitcoin prices first proposed by Giovanni Santostasi, Ph.D. It plots BTCUSD daily closes on a log10-log10 scale, and fits a linear regression channel to the data.
This channel helps traders visualise when the price is historically in a zone prone to tops or located within a discounted zone subject to future growth.
🔶 USAGE
Giovanni Santostasi, Ph.D. originated the Bitcoin Power-Law Theory; this implementation places it directly on a TradingView chart. The white line shows the daily closing price, while the cyan line is the best-fit regression.
A channel is constructed from the linear fit root mean squared error (RMSE), we can observe how price has repeatedly oscillated between each channel areas through every bull-bear cycle.
Excursions into the upper channel area can be followed by price surges and finishing on a top, whereas price touching the lower channel area coincides with a cycle low.
Users can change the channel areas multipliers, helping capture moves more precisely depending on the intended usage.
This tool only works on the daily BTCUSD chart. Ticker and timeframe must match exactly for the calculations to remain valid.
🔹 Linear Scale
Users can toggle on a linear scale for the time axis, in order to obtain a higher resolution of the price, (this will affect the linear regression channel fit, making it look poorer).
🔶 DETAILS
One of the advantages of the Power Law Theory proposed by Giovanni Santostasi is its ability to explain multiple behaviors of Bitcoin. We describe some key points below.
🔹 Power-Law Overview
A power law has the form y = A·xⁿ , and Bitcoin’s key variables follow this pattern across many orders of magnitude. Empirically, price rises roughly with t⁶, hash-rate with t¹² and the number of active addresses with t³.
When we plot these on log-log axes they appear as straight lines, revealing a scale-invariant system whose behaviour repeats proportionally as it grows.
🔹 Feedback-Loop Dynamics
Growth begins with new users, whose presence pushes the price higher via a Metcalfe-style square-law. A richer price pool funds more mining hardware; the Difficulty Adjustment immediately raises the hash-rate requirement, keeping profit margins razor-thin.
A higher hash rate secures the network, which in turn attracts the next wave of users. Because risk and Difficulty act as braking forces, user adoption advances as a power of three in time rather than an unchecked S-curve. This circular causality repeats without end, producing the familiar boom-and-bust cadence around the long-term power-law channel.
🔹 Scale Invariance & Predictions
Scale invariance means that enlarging the timeline in log-log space leaves the trajectory unchanged.
The same geometric proportions that described the first dollar of value can therefore extend to a projected million-dollar bitcoin, provided no catastrophic break occurs. Institutional ETF inflows supply fresh capital but do not bend the underlying slope; only a persistent deviation from the line would falsify the current model.
🔹 Implications
The theory assigns scarcity no direct role; iterative feedback and the Difficulty Adjustment are sufficient to govern Bitcoin’s expansion. Long-term valuation should focus on position within the power-law channel, while bubbles—sharp departures above trend that later revert—are expected punctuations of an otherwise steady climb.
Beyond about 2040, disruptive technological shifts could alter the parameters, but for the next order of magnitude the present slope remains the simplest, most robust guide.
Bitcoin behaves less like a traditional asset and more like a self-organising digital organism whose value, security, and adoption co-evolve according to immutable power-law rules.
🔶 SETTINGS
🔹 General
Start Calculation: Determine the start date used by the calculation, with any prior prices being ignored. (default - 15 Jul 2010)
Use Linear Scale for X-Axis: Convert the horizontal axis from log(time) to linear calendar time
🔹 Linear Regression
Show Regression Line: Enable/disable the central power-law trend line
Regression Line Color: Choose the colour of the regression line
Mult 1: Toggle line & fill, set multiplier (default +1), pick line colour and area fill colour
Mult 2: Toggle line & fill, set multiplier (default +0.5), pick line colour and area fill colour
Mult 3: Toggle line & fill, set multiplier (default -0.5), pick line colour and area fill colour
Mult 4: Toggle line & fill, set multiplier (default -1), pick line colour and area fill colour
🔹 Style
Price Line Color: Select the colour of the BTC price plot
Auto Color: Automatically choose the best contrast colour for the price line
Price Line Width: Set the thickness of the price line (1 – 5 px)
Show Halvings: Enable/disable dotted vertical lines at each Bitcoin halving
Halvings Color: Choose the colour of the halving lines
Quadruple EMA (QEMA)The Quadruple Exponential Moving Average (QEMA) is an advanced technical indicator that extends the concept of lag reduction beyond TEMA (Triple Exponential Moving Average) to a fourth order. By applying a sophisticated four-stage EMA cascade with optimized coefficient distribution, QEMA provides the ultimate evolution in EMA-based lag reduction techniques.
Unlike traditional compund moving averages like DEMA and TEMA, QEMA implements a progressive smoothing system that strategically distributes alphas across four EMA stages and combines them with balanced coefficients (4, -6, 4, -1). This approach creates an indicator that responds extremely quickly to price changes while still maintaining sufficient smoothness to be useful for trading decisions. QEMA is particularly valuable for traders who need the absolute minimum lag possible in trend identification.
▶️ **Core Concepts**
Fourth-order processing: Extends the EMA cascade to four stages for maximum possible lag reduction while maintaining a useful signal
Progressive alpha system: Uses mathematically derived ratio-based alpha progression to balance responsiveness across all four EMA stages
Optimized coefficients: Employs calculated weights (4, -6, 4, -1) to effectively eliminate lag while preserving compound signal stability
Numerical stability control: Implements initialization and alpha distribution to ensure consistent results from the first calculation bar
QEMA achieves its exceptional lag reduction by combining four progressive EMAs with mathematically optimized coefficients. The formula is designed to maximize responsiveness while minimizing the overshoot problems that typically occur with aggressive lag reduction techniques. The implementation uses a ratio-based alpha progression that ensures each EMA stage contributes appropriately to the final result.
▶️ **Common Settings and Parameters**
Period: Default: 15| Base smoothing period | When to Adjust: Decrease for extremely fast signals, increase for more stable output
Alpha: Default: auto | Direct control of base smoothing factor | When to Adjust: Manual setting allows precise tuning beyond standard period settings
Source: Default: Close | Data point used for calculation | When to Adjust: Change to HL2 or HLC3 for more balanced price representation
Pro Tip: Professional traders often use QEMA with longer periods than other moving averages (e.g., QEMA(20) instead of EMA(10)) since its extreme lag reduction provides earlier signals even with longer periods.
▶️ **Calculation and Mathematical Foundation**
Simplified explanation:
QEMA works by calculating four EMAs in sequence, with each EMA taking the previous one as input. It then combines these EMAs using balancing weights (4, -6, 4, -1) to create a moving average with extremely minimal lag and high level of smoothness. The alpha factors for each EMA are progressively adjusted using a mathematical ratio to ensure balanced responsiveness across all stages.
Technical formula:
QEMA = 4 × EMA₁ - 6 × EMA₂ + 4 × EMA₃ - EMA₄
Where:
EMA₁ = EMA(source, α₁)
EMA₂ = EMA(EMA₁, α₂)
EMA₃ = EMA(EMA₂, α₃)
EMA₄ = EMA(EMA₃, α₄)
α₁ = 2/(period + 1) is the base smoothing factor
r = (1/α₁)^(1/3) is the derived ratio
α₂ = α₁ × r, α₃ = α₂ × r, α₄ = α₃ × r are the progressive alphas
Mathematical Rationale for the Alpha Cascade:
The QEMA indicator employs a specific geometric progression for its smoothing factors (alphas) across the four EMA stages. This design is intentional and aims to optimize the filter's performance. The ratio between alphas is **r = (1/α₁)^(1/3)** - derived from the cube root of the reciprocal of the base alpha.
For typical smoothing (α₁ < 1), this results in a sequence of increasing alpha values (α₁ < α₂ < α₃ < α₄), meaning that subsequent EMAs in the cascade are progressively faster (less smoothed). This specific progression, when combined with the QEMA coefficients (4, -6, 4, -1), is chosen for the following reasons:
1. Optimized Frequency Response:
Using the same alpha for all EMA stages (as in a naive multi-EMA approach) can lead to an uneven frequency response, potentially causing over-shooting of certain frequencies or creating undesirable resonance. The geometric progression of alphas in QEMA helps to create a more balanced and controlled filter response across a wider range of movement frequencies. Each stage's contribution to the overall filtering characteristic is more harmonized.
2. Minimized Phase Lag:
A key goal of QEMA is extreme lag reduction. The specific alpha cascade, particularly the relationship defined by **r**, is designed to minimize the cumulative phase lag introduced by the four smoothing stages, while still providing effective noise reduction. Faster subsequent EMAs contribute to this reduced lag.
🔍 Technical Note: The ratio-based alpha progression is crucial for balanced response. The ratio r is calculated as the cube root of 1/α₁, ensuring that the combined effect of all four EMAs creates a mathematically optimal response curve. All EMAs are initialized with the first source value rather than using progressive initialization, eliminating warm-up artifacts and providing consistent results from the first bar.
▶️ **Interpretation Details**
QEMA provides several key insights for traders:
When price crosses above QEMA, it signals the beginning of an uptrend with minimal delay
When price crosses below QEMA, it signals the beginning of a downtrend with minimal delay
The slope of QEMA provides immediate insight into trend direction and momentum
QEMA responds to price reversals significantly faster than other moving averages
Multiple QEMA lines with different periods can identify immediate support/resistance levels
QEMA is particularly valuable in fast-moving markets and for short-term trading strategies where speed of signal generation is critical. It excels at capturing the very beginning of trends and identifying reversals earlier than any other EMA-derived indicator. This makes it especially useful for breakout trading and scalping strategies where getting in early is essential.
▶️ **Limitations and Considerations**
Market conditions: Can generate excessive signals in choppy, sideways markets due to its extreme responsiveness
Overshooting: The aggressive lag reduction can create some overshooting during sharp reversals
Calculation complexity: Requires four separate EMA calculations plus coefficient application, making it computationally more intensive
Parameter sensitivity: Small changes in the base alpha or period can significantly alter behavior
Complementary tools: Should be used with momentum indicators or volatility filters to confirm signals and reduce false positives
▶️ **References**
Mulloy, P. (1994). "Smoothing Data with Less Lag," Technical Analysis of Stocks & Commodities .
Ehlers, J. (2001). Rocket Science for Traders . John Wiley & Sons.
Hull Moving Average Adaptive RSI (Ehlers)Hull Moving Average Adaptive RSI (Ehlers)
The Hull Moving Average Adaptive RSI (Ehlers) is an enhanced trend-following indicator designed to provide a smooth and responsive view of price movement while incorporating an additional momentum-based analysis using the Adaptive RSI.
Principle and Advantages of the Hull Moving Average:
- The Hull Moving Average (HMA) is known for its ability to track price action with minimal lag while maintaining a smooth curve.
- Unlike traditional moving averages, the HMA significantly reduces noise and responds faster to market trends, making it highly effective for detecting trend direction and changes.
- It achieves this by applying a weighted moving average calculation that emphasizes recent price movements while smoothing out fluctuations.
Why the Adaptive RSI Was Added:
- The core HMA line remains the foundation of the indicator, but an additional analysis using the Adaptive RSI has been integrated to provide more meaningful insights into momentum shifts.
- The Adaptive RSI is a modified version of the traditional Relative Strength Index that dynamically adjusts its sensitivity based on market volatility.
- By incorporating the Adaptive RSI, the HMA visually represents whether momentum is strengthening or weakening, offering a complementary layer of analysis.
How the Adaptive RSI Influences the Indicator:
- High Adaptive RSI (above 65): The market may be overbought, or bullish momentum could be fading. The HMA turns shades of red, signaling a possible exhaustion phase or potential reversals.
- Neutral Adaptive RSI (around 50): The market is in a balanced state, meaning neither buyers nor sellers are in clear control. The HMA takes on grayish tones to indicate this consolidation.
- Low Adaptive RSI (below 35): The market may be oversold, or bearish momentum could be weakening. The HMA shifts to shades of blue, highlighting potential recovery zones or trend slowdowns.
Why This Combination is Powerful:
- While the HMA excels in tracking trends and reducing lag, it does not provide information about momentum strength on its own.
- The Adaptive RSI bridges this gap by adding a clear visual layer that helps traders assess whether a trend is likely to continue, consolidate, or reverse.
- This makes the indicator particularly useful for spotting trend exhaustion and confirming momentum shifts in real-time.
Best Use Cases:
- Works effectively on timeframes from 1 hour (1H) to 1 day (1D), making it suitable for swing trading and position trading.
- Particularly useful for trading indices (SPY), stocks, forex, and cryptocurrencies, where momentum shifts are frequent.
- Helps identify not just trend direction but also whether that trend is gaining or losing strength.
Recommended Complementary Indicators:
- Adaptive Trend Finder: Helps identify the dominant long-term trend.
- Williams Fractals Ultimate: Provides key reversal points to validate trend shifts.
- RVOL (Relative Volume): Confirms significant moves based on volume strength.
This enhanced HMA with Adaptive RSI provides a powerful, intuitive visual tool that makes trend analysis and momentum interpretation more effective and efficient.
This indicator is for educational and informational purposes only. It should not be considered financial advice or a guarantee of performance. Always conduct your own research and use proper risk management when trading. Past performance does not guarantee future results.
PDF-MA Supertrend [BackQuant]PDF-MA Supertrend
The PDF-MA Supertrend combines the innovative Probability Density Function (PDF) smoothing with the widely popular Supertrend methodology, creating a robust tool for identifying trends and generating actionable trading signals. This indicator is designed to provide precise entries and exits by dynamically adapting to market volatility while visualizing long and short opportunities directly on the chart.
Core Feature: PDF Smoothing
At the foundation of this indicator is the PDF smoothing technique, which applies a Probability Density Function to calculate a smoothed moving average. This method allows the indicator to assign adaptive weights to data points, making it responsive to market changes without overreacting to short-term volatility.
Key parameters include:
Variance: Controls the spread of the PDF weighting. A smaller variance results in sharper responses, while a larger variance smooths out the curve.
Mean: Shifts the PDF’s center, allowing traders to tweak how weights are distributed around the data points.
Smoothing Method: Offers the choice between EMA (Exponential Moving Average) and SMA (Simple Moving Average) for blending the PDF-smoothed data with traditional moving average methods.
By combining these parameters, the PDF smoothing creates a moving average that effectively captures underlying trends.
Supertrend: Adaptive Trend and Volatility Tracking
The Supertrend is a well-known volatility-based indicator that dynamically adjusts to market conditions using the ATR (Average True Range). In this script, the PDF-smoothed moving average acts as the price input, making the Supertrend calculation more adaptive and precise.
Key Supertrend Features:
ATR Period: Determines the lookback period for calculating market volatility.
Factor: Multiplies the ATR to set the distance between the Supertrend and the price. A higher factor creates wider bands, filtering out smaller price movements, while a lower factor captures tighter trends.
Dynamic Direction: The Supertrend flips its direction based on price interactions with the calculated upper and lower bands:
Uptrend : When the price is above the Supertrend, the direction turns bullish.
Downtrend : When the price is below the Supertrend, the direction turns bearish.
This combination of PDF smoothing and Supertrend calculation ensures that trends are detected with greater accuracy, while volatility filters out market noise.
Long and Short Signal Generation
The PDF-MA Supertrend generates actionable trading signals by detecting transitions in the trend direction:
Long Signal (𝕃): Triggered when the trend transitions from bearish to bullish. This is visually represented with a green triangle below the price bars.
Short Signal (𝕊): Triggered when the trend transitions from bullish to bearish. This is marked with a red triangle above the price bars.
These signals provide traders with clear entry and exit points, ensuring they can capitalize on emerging trends while avoiding false signals.
Customizable Visualization Options
The indicator offers a range of visualization settings to help traders interpret the data with ease:
Show Supertrend: Option to toggle the visibility of the Supertrend line.
Candle Coloring: Automatically colors candlesticks based on the trend direction:
Green for long trends.
Red for short trends.
Long and Short Signals (𝕃 + 𝕊): Displays long (𝕃) and short (𝕊) signals directly on the chart for quick identification of trade opportunities.
Line Color Customization: Allows users to customize the colors for long and short trends.
Alert Conditions
To ensure traders never miss an opportunity, the PDF-MA Supertrend includes built-in alerts for trend changes:
Long Signal Alert: Notifies when a bullish trend is identified.
Short Signal Alert: Notifies when a bearish trend is identified.
These alerts can be configured for real-time notifications via SMS, email, or push notifications, making it easier to stay updated on market movements.
Suggested Parameter Adjustments
The indicator’s effectiveness can be fine-tuned using the following guidelines:
Variance:
For low-volatility assets (e.g., indices): Use a smaller variance (1.0–1.5) for smoother trends.
For high-volatility assets (e.g., cryptocurrencies): Use a larger variance (1.5–2.0) to better capture rapid price changes.
ATR Factor:
A higher factor (e.g., 2.0) is better suited for long-term trend-following strategies.
A lower factor (e.g., 1.5) captures shorter-term trends.
Smoothing Period:
Shorter periods provide more reactive signals but may increase noise.
Longer periods offer stability and better alignment with significant trends.
Experimentation is encouraged to find the optimal settings for specific assets and trading strategies.
Trading Applications
The PDF-MA Supertrend is a versatile indicator suited to a variety of trading approaches:
Trend Following : Use the Supertrend line and signals to follow market trends and ride sustained price movements.
Reversal Trading : Spot potential trend reversals as the Supertrend flips direction.
Volatility Analysis : Adjust the ATR factor to filter out minor price fluctuations or capture sharp movements.
Final Thoughts
The PDF-MA Supertrend combines the precision of Probability Density Function smoothing with the adaptability of the Supertrend methodology, offering traders a powerful tool for identifying trends and volatility. With its customizable parameters, actionable signals, and built-in alerts, this indicator is an excellent choice for traders seeking a robust and reliable system for trend detection and entry/exit timing.
As always, backtesting and incorporating this indicator into a broader strategy are recommended for optimal results.
GOLDEN RSI by @thejamiulGOLDEN RSI thejamiul is a versatile Relative Strength Index (RSI)-based tool designed to provide enhanced visualization and additional insights into market trends and potential reversal points. This indicator improves upon the traditional RSI by integrating gradient fills for overbought/oversold zones and divergence detection features, making it an excellent choice for traders who seek precise and actionable signals.
Source of this indicator : This indicator is based on @TradingView original RSI indicator with a little bit of customisation to enhance overbought and oversold identification.
Key Features
1. Customizable RSI Settings:
RSI Length: Adjust the RSI calculation period to suit your trading style (default: 14).
Source Selection: Choose the price source (e.g., close, open, high, low) for RSI calculation.
2. Gradient-Filled RSI Zones:
Overbought Zone (80-100): Gradient fill with shades of green to indicate strong bullish conditions.
Oversold Zone (0-20): Gradient fill with shades of red to highlight strong bearish conditions.
3. Support and Resistance Levels:
Upper Band: 80
Middle Bands: 60 (bullish) and 40 (bearish)
Lower Band: 20
These levels help identify overbought, oversold, and neutral zones.
4. Divergence Detection:
Bullish Divergence: Detects lower lows in price with corresponding higher lows in RSI, signaling potential upward reversals.
Bearish Divergence: Detects higher highs in price with corresponding lower highs in RSI, indicating potential downward reversals.
Visual Indicators:
Bullish divergence is marked with green labels and line plots.
Bearish divergence is marked with red labels and line plots.
5. Alert Functionality:
Custom Alerts: Set up alerts for bullish or bearish divergences to stay notified of potential trading opportunities without constant chart monitoring.
6. Enhanced Chart Visualization:
RSI Plot: A smooth and visually appealing RSI curve.
Color Coding: Gradient and fills for better distinction of trading zones.
Pivot Labels: Clear identification of divergence points on the RSI plot.
PIP Algorithm
# **Script Overview (For Non-Coders)**
1. **Purpose**
- The script tries to capture the essential “shape” of price movement by selecting a limited number of “key points” (anchors) from the latest bars.
- After selecting these anchors, it draws straight lines between them, effectively simplifying the price chart into a smaller set of points without losing major swings.
2. **How It Works, Step by Step**
1. We look back a certain number of bars (e.g., 50).
2. We start by drawing a straight line from the **oldest** bar in that range to the **newest** bar—just two points.
3. Next, we find the bar whose price is *farthest away* from that straight line. That becomes a new anchor point.
4. We “snap” (pin) the line to go exactly through that new anchor. Then we re-draw (re-interpolate) the entire line from the first anchor to the last, in segments.
5. We repeat the process (adding more anchors) until we reach the desired number of points. Each time, we choose the biggest gap between our line and the actual price, then re-draw the entire shape.
6. Finally, we connect these anchors on the chart with red lines, visually simplifying the price curve.
3. **Why It’s Useful**
- It highlights the most *important* bends or swings in the price over the chosen window.
- Instead of plotting every single bar, it condenses the information down to the “key turning points.”
4. **Key Takeaway**
- You’ll see a small number of red line segments connecting the **most significant** points in the price data.
- This is especially helpful if you want a simplified view of recent price action without minor fluctuations.
## **Detailed Logic Explanation**
# **Script Breakdown (For Coders)**
//@version=5
indicator(title="PIP Algorithm", overlay=true)
// 1. Inputs
length = input.int(50, title="Lookback Length")
num_points = input.int(5, title="Number of PIP Points (≥ 3)")
// 2. Helper Functions
// ---------------------------------------------------------------------
// reInterpSubrange(...):
// Given two “anchor” indices in `linesArr`, linearly interpolate
// the array values in between so that the subrange forms a straight line
// from linesArr to linesArr .
reInterpSubrange(linesArr, segmentLeft, segmentRight) =>
float leftVal = array.get(linesArr, segmentLeft)
float rightVal = array.get(linesArr, segmentRight)
int segmentLen = segmentRight - segmentLeft
if segmentLen > 1
for i = segmentLeft + 1 to segmentRight - 1
float ratio = (i - segmentLeft) / segmentLen
float interpVal = leftVal + (rightVal - leftVal) * ratio
array.set(linesArr, i, interpVal)
// reInterpolateAllSegments(...):
// For the entire “linesArr,” re-interpolate each subrange between
// consecutive breakpoints in `lineBreaksArr`.
// This ensures the line is globally correct after each new anchor insertion.
reInterpolateAllSegments(linesArr, lineBreaksArr) =>
array.sort(lineBreaksArr, order.asc)
for i = 0 to array.size(lineBreaksArr) - 2
int leftEdge = array.get(lineBreaksArr, i)
int rightEdge = array.get(lineBreaksArr, i + 1)
reInterpSubrange(linesArr, leftEdge, rightEdge)
// getMaxDistanceIndex(...):
// Return the index (bar) that is farthest from the current “linesArr.”
// We skip any indices already in `lineBreaksArr`.
getMaxDistanceIndex(linesArr, closeArr, lineBreaksArr) =>
float maxDist = -1.0
int maxIdx = -1
int sizeData = array.size(linesArr)
for i = 1 to sizeData - 2
bool isBreak = false
for b = 0 to array.size(lineBreaksArr) - 1
if i == array.get(lineBreaksArr, b)
isBreak := true
break
if not isBreak
float dist = math.abs(array.get(linesArr, i) - array.get(closeArr, i))
if dist > maxDist
maxDist := dist
maxIdx := i
maxIdx
// snapAndReinterpolate(...):
// "Snap" a chosen index to its actual close price, then re-interpolate the entire line again.
snapAndReinterpolate(linesArr, closeArr, lineBreaksArr, idxToSnap) =>
if idxToSnap >= 0
float snapVal = array.get(closeArr, idxToSnap)
array.set(linesArr, idxToSnap, snapVal)
reInterpolateAllSegments(linesArr, lineBreaksArr)
// 3. Global Arrays and Flags
// ---------------------------------------------------------------------
// We store final data globally, then use them outside the barstate.islast scope to draw lines.
var float finalCloseData = array.new_float()
var float finalLines = array.new_float()
var int finalLineBreaks = array.new_int()
var bool didCompute = false
var line pipLines = array.new_line()
// 4. Main Logic (Runs Once at the End of the Current Bar)
// ---------------------------------------------------------------------
if barstate.islast
// A) Prepare closeData in forward order (index 0 = oldest bar, index length-1 = newest)
float closeData = array.new_float()
for i = 0 to length - 1
array.push(closeData, close )
// B) Initialize linesArr with a simple linear interpolation from the first to the last point
float linesArr = array.new_float()
float firstClose = array.get(closeData, 0)
float lastClose = array.get(closeData, length - 1)
for i = 0 to length - 1
float ratio = (length > 1) ? (i / float(length - 1)) : 0.0
float val = firstClose + (lastClose - firstClose) * ratio
array.push(linesArr, val)
// C) Initialize lineBreaks with two anchors: 0 (oldest) and length-1 (newest)
int lineBreaks = array.new_int()
array.push(lineBreaks, 0)
array.push(lineBreaks, length - 1)
// D) Iteratively insert new breakpoints, always re-interpolating globally
int iterationsNeeded = math.max(num_points - 2, 0)
for _iteration = 1 to iterationsNeeded
// 1) Re-interpolate entire shape, so it's globally up to date
reInterpolateAllSegments(linesArr, lineBreaks)
// 2) Find the bar with the largest vertical distance to this line
int maxDistIdx = getMaxDistanceIndex(linesArr, closeData, lineBreaks)
if maxDistIdx == -1
break
// 3) Insert that bar index into lineBreaks and snap it
array.push(lineBreaks, maxDistIdx)
array.sort(lineBreaks, order.asc)
snapAndReinterpolate(linesArr, closeData, lineBreaks, maxDistIdx)
// E) Save results into global arrays for line drawing outside barstate.islast
array.clear(finalCloseData)
array.clear(finalLines)
array.clear(finalLineBreaks)
for i = 0 to array.size(closeData) - 1
array.push(finalCloseData, array.get(closeData, i))
array.push(finalLines, array.get(linesArr, i))
for b = 0 to array.size(lineBreaks) - 1
array.push(finalLineBreaks, array.get(lineBreaks, b))
didCompute := true
// 5. Drawing the Lines in Global Scope
// ---------------------------------------------------------------------
// We cannot create lines inside barstate.islast, so we do it outside.
array.clear(pipLines)
if didCompute
// Connect each pair of anchors with red lines
if array.size(finalLineBreaks) > 1
for i = 0 to array.size(finalLineBreaks) - 2
int idxLeft = array.get(finalLineBreaks, i)
int idxRight = array.get(finalLineBreaks, i + 1)
float x1 = bar_index - (length - 1) + idxLeft
float x2 = bar_index - (length - 1) + idxRight
float y1 = array.get(finalCloseData, idxLeft)
float y2 = array.get(finalCloseData, idxRight)
line ln = line.new(x1, y1, x2, y2, extend=extend.none)
line.set_color(ln, color.red)
line.set_width(ln, 2)
array.push(pipLines, ln)
1. **Data Collection**
- We collect the **most recent** `length` bars in `closeData`. Index 0 is the oldest bar in that window, index `length-1` is the newest bar.
2. **Initial Straight Line**
- We create an array called `linesArr` that starts as a simple linear interpolation from `closeData ` (the oldest bar’s close) to `closeData ` (the newest bar’s close).
3. **Line Breaks**
- We store “anchor points” in `lineBreaks`, initially ` `. These are the start and end of our segment.
4. **Global Re-Interpolation**
- Each time we want to add a new anchor, we **re-draw** (linear interpolation) for *every* subrange ` [lineBreaks , lineBreaks ]`, ensuring we have a globally consistent line.
- This avoids the “local subrange only” approach, which can cause clustering near existing anchors.
5. **Finding the Largest Distance**
- After re-drawing, we compute the vertical distance for each bar `i` that isn’t already a line break. The bar with the biggest distance from the line is chosen as the next anchor (`maxDistIdx`).
6. **Snapping and Re-Interpolate**
- We “snap” that bar’s line value to the actual close, i.e. `linesArr = closeData `. Then we globally re-draw all segments again.
7. **Repeat**
- We repeat these insertions until we have the desired number of points (`num_points`).
8. **Drawing**
- Finally, we connect each consecutive pair of anchor points (`lineBreaks`) with a `line.new(...)` call, coloring them red.
- We offset the line’s `x` coordinate so that the anchor at index 0 lines up with `bar_index - (length - 1)`, and the anchor at index `length-1` lines up with `bar_index` (the current bar).
**Result**:
You get a simplified representation of the price with a small set of line segments capturing the largest “jumps” or swings. By re-drawing the entire line after each insertion, the anchors tend to distribute more *evenly* across the data, mitigating the issue where anchors bunch up near each other.
Enjoy experimenting with different `length` and `num_points` to see how the simplified lines change!
Candled LWMA (Loacally Weighted MA)The Locally Weighted Moving Average (LWMA) is a type of moving average that emphasizes recent data points by assigning them higher weights compared to older values. Unlike the Simple Moving Average (SMA), which treats all data points equally, or the Exponential Moving Average (EMA), which uses a fixed weighting factor, the LWMA applies a linear weighting scheme. This means that the most recent prices contribute more significantly to the average, making the LWMA more responsive to price changes while retaining a smooth curve.
In trading, the LWMA is particularly useful for identifying trends and detecting price reversals with reduced lag. By giving more importance to the latest prices, it provides a clearer picture of the current market dynamics. Traders often use the LWMA in combination with other indicators to confirm trends or spot potential entry and exit points. The adjustable length parameter allows for fine-tuning the indicator to match different market conditions and trading styles. Its ability to adapt to recent price behavior makes it a valuable tool for both short-term and long-term traders.
Quick scan for signal🙏🏻 Hey TV, this is QSFS, following:
^^ Quick scan for drift (QSFD)
^^ Quick scan for cycles (QSFC)
As mentioned before, ML trading is all about spotting any kind of non-randomness, and this metric (along with 2 previously posted) gonna help ya'll do it fast. This one will show you whether your time series possibly exhibits mean-reverting / consistent / noisy behavior, that can be later confirmed or denied by more sophisticated tools. This metric is O(n) in windowed mode and O(1) if calculated incrementally on each data update, so you can scan Ks of datasets w/o worrying about melting da ice.
^^ windowed mode
Now the post will be divided into several sections, and a couple of things I guess you’ve never seen or thought about in your life:
1) About Efficiency Ratios posted there on TV;
Some of you might say this is the Efficiency Ratio you’ve seen in Perry's book. Firstly, I can assure you that neither me nor Perry, just as X amount of quants all over the world and who knows who else, would say smth like, "I invented it," lol. This is just a thing you R&D when you need it. Secondly, I invite you (and mods & admin as well) to take a lil glimpse at the following screenshot:
^^ not cool...
So basically, all the Efficiency Ratios that were copypasted to our platform suffer the same bug: dudes don’t know how indexing works in Pine Script. I mean, it’s ok, I been doing the same mistakes as well, but loxx, cmon bro, you... If you guys ever read it, the lines 20 and 22 in da code are dedicated to you xD
2) About the metric;
This supports both moving window mode when Length > 0 and all-data expanding window mode when Length < 1, calculating incrementally from the very first data point in the series: O(n) on history, O(1) on live updates.
Now, why do I SQRT transform the result? This is a natural action since the metric (being a ratio in essence) is bounded between 0 and 1, so it can be modeled with a beta distribution. When you SQRT transform it, it still stays beta (think what happens when you apply a square root to 0.01 or 0.99), but it becomes symmetric around its typical value and starts to follow a bell-shaped curve. This can be easily checked with a normality test or by applying a set of percentiles and seeing the distances between them are almost equal.
Then I noticed that on different moving window sizes, the typical value of the metric seems to slide: higher window sizes lead to lower typical values across the moving windows. Turned out this can be modeled the same way confidence intervals are made. Lines 34 and 35 explain it all, I guess. You can see smth alike on an autocorrelogram. These two match the mean & mean + 1 stdev applied to the metric. This way, we’ve just magically received data to estimate alpha and beta parameters of the beta distribution using the method of moments. Having alpha and beta, we can now estimate everything further. Btw, there’s an alternative parameterization for beta distributions based on data length.
Now what you’ll see next is... u guys actually have no idea how deep and unrealistically minimalistic the underlying math principles are here.
I’m sure I’m not the only one in the universe who figured it out, but the thing is, it’s nowhere online or offline. By calculating higher-order moments & combining them, you can find natural adaptive thresholds that can later be used for anomaly detection/control applications for any data. No hardcoded thresholds, purely data-driven. Imma come back to this in one of the next drops, but the truest ones can already see it in this code. This way we get dem thresholds.
Your main thresholds are: basis, upper, and lower deviations. You can follow the common logic I’ve described in my previous scripts on how to use them. You just register an event when the metric goes higher/lower than a certain threshold based on what you’re looking for. Then you take the time series and confirm a certain behavior you were looking for by using an appropriate stat test. Or just run a certain strategy.
To avoid numerous triggers when the metric jitters around a threshold, you can follow this logic: forget about one threshold if touched, until another threshold is touched.
In general, when the metric gets higher than certain thresholds, like upper deviation, it means the signal is stronger than noise. You confirm it with a more sophisticated tool & run momentum strategies if drift is in place, or volatility strategies if there’s no drift in place. Otherwise, you confirm & run ~ mean-reverting strategies, regardless of whether there’s drift or not. Just don’t operate against the trend—hedge otherwise.
3) Flex;
Extension and limit thresholds based on distribution moments gonna be discussed properly later, but now you can see this:
^^ magic
Look at the thresholds—adaptive and dynamic. Do you see any optimizations? No ML, no DL, closed-form solution, but how? Just a formula based on a couple of variables? Maybe it’s just how the Universe works, but how can you know if you don’t understand how fundamentally numbers 3 and 15 are related to the normal distribution? Hm, why do they always say 3 sigmas but can’t say why? Maybe you can be different and say why?
This is the primordial power of statistical modeling.
4) Thanks;
I really wanna dedicate this to Charlotte de Witte & Marion Di Napoli, and their new track "Sanctum." It really gets you connected to the Source—I had it in my soul when I was doing all this ∞
DI Oscillator with Adjustments by DSPDI Oscillator with Adjustments by DSP – High-Volatility Commodity Trading Tool 📈💥
Maximize Your Trading Efficiency in volatile commodity markets with the DI Oscillator with Adjustments by DSP. This unique indicator combines the classic +DI and -DI (Directional Indicators) with advanced adjustments that help you identify key trends and reversals in highly volatile conditions.
Whether you're trading commodities, forex, or stocks, this tool is engineered to help you navigate price fluctuations and make timely, informed decisions. Let this powerful tool guide you through turbulent market conditions with ease!
Key Features:
Dynamic Background Color Shifts 🌈:
Green Background: Signals a strong uptrend where +DI is clearly above -DI, and the trend is supported by clear separation between the two indicators.
Red Background: Signals a strong downtrend where -DI is above +DI, indicating bearish pressure.
Violet Background: Shows a neutral or consolidating market where the +DI and -DI lines are closely interwoven, giving you a clear picture of sideways movement.
Buy and Sell Labels 📊:
Buy Signal: Automatically triggers when the background changes to green, indicating a potential entry point during a bullish trend.
Sell Signal: Automatically triggers when the background shifts from purple to red, indicating a bearish trend reversal.
Labels are positioned away from the bars, ensuring your chart remains uncluttered and easy to read.
Enhanced Adjustments for Volatile Markets ⚡:
Custom adjustments based on consecutive green or red bars (excluding “sandwiched” bars) provide you with more nuanced signals, improving the accuracy of trend detection in volatile conditions.
Horizontal Line Reference 📏:
Set a custom horizontal level to mark significant price levels that may act as resistance or support, helping you identify key price points in volatile market swings.
Separation Threshold 🧮:
A custom separation threshold defines when the +DI and -DI lines are far enough apart to confirm a strong trend. This is crucial for commodity markets that experience rapid price changes and fluctuations.
Visual Clarity ✨:
Both +DI and -DI lines are plotted clearly in green and red, respectively, with a dedicated background color system that makes trend shifts visually intuitive.
Why This Indicator Works for Volatile Commodities 🌍📊:
Commodity markets are notorious for their volatility, with prices often experiencing rapid and unpredictable movements. This indicator gives you clear visual cues about trend strength and reversals, enabling you to act quickly and confidently.
By adjusting the +DI based on consecutive green and red bars, this tool adapts to the specific price action in high-volatility conditions, helping you stay ahead of the curve.
The background color system ensures that you can visually track market trends at a glance, making it easier to make split-second decisions without missing opportunities.
How to Use:
Add the Indicator: Simply add the DI Oscillator with Adjustments by DSP to your TradingView chart.
Watch for Background Color Shifts: Stay alert for the background color to shift from violet to green (for buy) or purple to red (for sell), signaling potential trade opportunities.
Set Alerts: Receive notifications when background color changes, providing you with real-time alerts to keep track of market movements.
Interpret the DI Lines: Use the +DI and -DI lines to gauge trend strength and adjust your strategy accordingly.
Who Can Benefit:
Day Traders: Take advantage of quick trend reversals and high volatility in commodities markets, such as gold, oil, or agricultural products.
Swing Traders: Identify key trend shifts over longer periods, making it easier to enter or exit trades during major price movements.
Risk Managers: Use this tool’s visual cues to better understand price fluctuations and adjust your position sizes according to market conditions.
💡 Unlock Your Potential with the DI Oscillator 💡
For traders in high-volatility commodity markets, this indicator is a game-changer. It simplifies the complexity of trend analysis and gives you the actionable insights you need to make fast, profitable decisions. Whether you're trading gold, oil, or other volatile commodities, the DI Oscillator with Adjustments by DSP can help you navigate market chaos and make better-informed trades.
Don’t miss out — enhance your trading strategy today with this powerful tool and stay ahead in any market environment!
Silver Bullet ICT Strategy [TradingFinder] 10-11 AM NY Time +FVG🔵 Introduction
The ICT Silver Bullet trading strategy is a precise, time-based algorithmic approach that relies on Fair Value Gaps and Liquidity to identify high-probability trade setups. The strategy primarily focuses on the New York AM Session from 10:00 AM to 11:00 AM, leveraging heightened market activity within this critical window to capture short-term trading opportunities.
As an intraday strategy, it is most effective on lower timeframes, with ICT recommending a 15-minute chart or lower. While experienced traders often utilize 1-minute to 5-minute charts, beginners may find the 1-minute timeframe more manageable for applying this strategy.
This approach specifically targets quick trades, designed to take advantage of market movements within tight one-hour windows. By narrowing its focus, the Silver Bullet offers a streamlined and efficient method for traders to capitalize on liquidity shifts and price imbalances with precision.
In the fast-paced world of forex trading, the ability to identify market manipulation and false price movements is crucial for traders aiming to stay ahead of the curve. The Silver Bullet Indicator simplifies this process by integrating ICT principles such as liquidity traps, Order Blocks, and Fair Value Gaps (FVG).
These concepts form the foundation of a tool designed to mimic the strategies of institutional players, empowering traders to align their trades with the "smart money." By transforming complex market dynamics into actionable insights, the Silver Bullet Indicator provides a powerful framework for short-term trading success
Silver Bullet Bullish Setup :
Silver Bullet Bearish Setup :
🔵 How to Use
The Silver Bullet Indicator is a specialized tool that operates within the critical time windows of 9:00-10:00 and 10:00-11:00 in the forex market. Its design incorporates key principles from ICT (Inner Circle Trader) methodology, focusing on concepts such as liquidity traps, CISD Levels, Order Blocks, and Fair Value Gaps (FVG) to provide precise and actionable trade setups.
🟣 Bullish Setup
In a bullish setup, the indicator starts by marking the high and low of the session, serving as critical reference points for liquidity. A typical sequence involves a liquidity grab below the low, where the price manipulates retail traders into selling positions by breaching a key support level.
This movement is often orchestrated by smart money to accumulate buy orders. Following this liquidity grab, a market structure shift (MSS) occurs, signaled by the price breaking the CISD Level—a confirmation of bullish intent. The indicator then highlights an Order Block near the CISD Level, representing the zone where institutional buying is concentrated.
Additionally, it identifies a Fair Value Gap, which acts as a high-probability area for price retracement and trade entry. Traders can confidently take long positions when the price revisits these zones, targeting the next significant liquidity pool or resistance level.
Bullish Setup in CAPITALCOM:US100 :
🟣 Bearish Setup
Conversely, in a bearish setup, the price manipulates liquidity by creating a false breakout above the high of the session. This move entices retail traders into long positions, allowing institutional players to enter sell orders.
Once the price reverses direction and breaches the CISD Level to the downside, a change of character (CHOCH) becomes evident, confirming a bearish market structure. The indicator highlights an Order Block near this level, indicating the origin of the institutional sell orders, along with an associated FVG, which represents an imbalance zone likely to be revisited before the price continues downward.
By entering short positions when the price retraces to these levels, traders align their strategies with the anticipated continuation of bearish momentum, targeting nearby liquidity voids or support zones.
Bearish Setup in OANDA:XAUUSD :
🔵 Settings
Refine Order Block : Enables finer adjustments to Order Block levels for more accurate price responses.
Mitigation Level OB : Allows users to set specific reaction points within an Order Block, including: Proximal: Closest level to the current price. 50% OB: Midpoint of the Order Block. Distal: Farthest level from the current price.
FVG Filter : The Judas Swing indicator includes a filter for Fair Value Gap (FVG), allowing different filtering based on FVG width: FVG Filter Type: Can be set to "Very Aggressive," "Aggressive," "Defensive," or "Very Defensive." Higher defensiveness narrows the FVG width, focusing on narrower gaps.
Mitigation Level FVG : Like the Order Block, you can set price reaction levels for FVG with options such as Proximal, 50% OB, and Distal.
CISD : The Bar Back Check option enables traders to specify the number of past candles checked for identifying the CISD Level, enhancing CISD Level accuracy on the chart.
🔵 Conclusion
The Silver Bullet Indicator is a cutting-edge tool designed specifically for forex traders who aim to leverage market dynamics during critical liquidity windows. By focusing on the highly active 9:00-10:00 and 10:00-11:00 timeframes, the indicator simplifies complex market concepts such as liquidity traps, Order Blocks, Fair Value Gaps (FVG), and CISD Levels, transforming them into actionable insights.
What sets the Silver Bullet Indicator apart is its precision in detecting false breakouts and market structure shifts (MSS), enabling traders to align their strategies with institutional activity. The visual clarity of its signals, including color-coded zones and directional arrows, ensures that both novice and experienced traders can easily interpret and apply its findings in real-time.
By integrating ICT principles, the indicator empowers traders to identify high-probability entry and exit points, minimize risk, and optimize trade execution. Whether you are capturing short-term price movements or navigating complex market conditions, the Silver Bullet Indicator offers a robust framework to enhance your trading performance.
Ultimately, this tool is more than just an indicator; it is a strategic ally for traders who seek to decode the movements of smart money and capitalize on institutional strategies. With the Silver Bullet Indicator, traders can approach the market with greater confidence, precision, and profitability.
Advanced Keltner Channel/Oscillator [MyTradingCoder]This indicator combines a traditional Keltner Channel overlay with an oscillator, providing a comprehensive view of price action, trend, and momentum. The core of this indicator is its advanced ATR calculation, which uses statistical methods to provide a more robust measure of volatility.
Starting with the overlay component, the center line is created using a biquad low-pass filter applied to the chosen price source. This provides a smoother representation of price than a simple moving average. The upper and lower channel lines are then calculated using the statistically derived ATR, with an additional set of mid-lines between the center and outer lines. This creates a more nuanced view of price action within the channel.
The color coding of the center line provides an immediate visual cue of the current price momentum. As the price moves up relative to the ATR, the line shifts towards the bullish color, and vice versa for downward moves. This color gradient allows for quick assessment of the current market sentiment.
The oscillator component transforms the channel into a different perspective. It takes the price's position within the channel and maps it to either a normalized -100 to +100 scale or displays it in price units, depending on your settings. This oscillator essentially shows where the current price is in relation to the channel boundaries.
The oscillator includes two key lines: the main oscillator line and a signal line. The main line represents the current position within the channel, smoothed by an exponential moving average (EMA). The signal line is a further smoothed version of the oscillator line. The interaction between these two lines can provide trading signals, similar to how MACD is often used.
When the oscillator line crosses above the signal line, it might indicate bullish momentum, especially if this occurs in the lower half of the oscillator range. Conversely, the oscillator line crossing below the signal line could signal bearish momentum, particularly if it happens in the upper half of the range.
The oscillator's position relative to its own range is also informative. Values near the top of the range (close to 100 if normalized) suggest that price is near the upper Keltner Channel band, indicating potential overbought conditions. Values near the bottom of the range (close to -100 if normalized) suggest proximity to the lower band, potentially indicating oversold conditions.
One of the strengths of this indicator is how the overlay and oscillator work together. For example, if the price is touching the upper band on the overlay, you'd see the oscillator at or near its maximum value. This confluence of signals can provide stronger evidence of overbought conditions. Similarly, the oscillator hitting extremes can draw your attention to price action at the channel boundaries on the overlay.
The mid-lines on both the overlay and oscillator provide additional nuance. On the overlay, price action between the mid-line and outer line might suggest strong but not extreme momentum. On the oscillator, this would correspond to readings in the outer quartiles of the range.
The customizable visual settings allow you to adjust the indicator to your preferences. The glow effects and color coding can make it easier to quickly interpret the current market conditions at a glance.
Overlay Component:
The overlay displays Keltner Channel bands dynamically adapting to market conditions, providing clear visual cues for potential trend reversals, breakouts, and overbought/oversold zones.
The center line is a biquad low-pass filter applied to the chosen price source.
Upper and lower channel lines are calculated using a statistically derived ATR.
Includes mid-lines between the center and outer channel lines.
Color-coded based on price movement relative to the ATR.
Oscillator Component:
The oscillator component complements the overlay, highlighting momentum and potential turning points.
Normalized values make it easy to compare across different assets and timeframes.
Signal line crossovers generate potential buy/sell signals.
Advanced ATR Calculation:
Uses a unique method to compute ATR, incorporating concepts like root mean square (RMS) and z-score clamping.
Provides both an average and mode-based ATR value.
Customizable Visual Settings:
Adjustable colors for bullish and bearish moves, oscillator lines, and channel components.
Options for line width, transparency, and glow effects.
Ability to display overlay, oscillator, or both simultaneously.
Flexible Parameters:
Customizable inputs for channel width multiplier, ATR period, smoothing factors, and oscillator settings.
Adjustable Q factor for the biquad filter.
Key Advantages:
Advanced ATR Calculation: Utilizes a statistical method to generate ATR, ensuring greater responsiveness and accuracy in volatile markets.
Overlay and Oscillator: Provides a comprehensive view of price action, combining trend and momentum analysis.
Customizable: Adjust settings to fine-tune the indicator to your specific needs and trading style.
Visually Appealing: Clear and concise design for easy interpretation.
The ATR (Average True Range) in this indicator is derived using a sophisticated statistical method that differs from the traditional ATR calculation. It begins by calculating the True Range (TR) as the difference between the high and low of each bar. Instead of a simple moving average, it computes the Root Mean Square (RMS) of the TR over the specified period, giving more weight to larger price movements. The indicator then calculates a Z-score by dividing the TR by the RMS, which standardizes the TR relative to recent volatility. This Z-score is clamped to a maximum value (10 in this case) to prevent extreme outliers from skewing the results, and then rounded to a specified number of decimal places (2 in this script).
These rounded Z-scores are collected in an array, keeping track of how many times each value occurs. From this array, two key values are derived: the mode, which is the most frequently occurring Z-score, and the average, which is the weighted average of all Z-scores. These values are then scaled back to price units by multiplying by the RMS.
Now, let's examine how these values are used in the indicator. For the Keltner Channel lines, the mid lines (top and bottom) use the mode of the ATR, representing the most common volatility state. The max lines (top and bottom) use the average of the ATR, incorporating all volatility states, including less common but larger moves. By using the mode for the mid lines and the average for the max lines, the indicator provides a nuanced view of volatility. The mid lines represent the "typical" market state, while the max lines account for less frequent but significant price movements.
For the color coding of the center line, the mode of the ATR is used to normalize the price movement. The script calculates the difference between the current price and the price 'degree' bars ago (default is 2), and then divides this difference by the mode of the ATR. The resulting value is passed through an arctangent function and scaled to a 0-1 range. This scaled value is used to create a color gradient between the bearish and bullish colors.
Using the mode of the ATR for this color coding ensures that the color changes are based on the most typical volatility state of the market. This means that the color will change more quickly in low volatility environments and more slowly in high volatility environments, providing a consistent visual representation of price momentum relative to current market conditions.
Using a good IIR (Infinite Impulse Response) low-pass filter, such as the biquad filter implemented in this indicator, offers significant advantages over simpler moving averages like the EMA (Exponential Moving Average) or other basic moving averages.
At its core, an EMA is indeed a simple, single-pole IIR filter, but it has limitations in terms of its frequency response and phase delay characteristics. The biquad filter, on the other hand, is a two-pole, two-zero filter that provides superior control over the frequency response curve. This allows for a much sharper cutoff between the passband and stopband, meaning it can more effectively separate the signal (in this case, the underlying price trend) from the noise (short-term price fluctuations).
The improved frequency response of a well-designed biquad filter means it can achieve a better balance between smoothness and responsiveness. While an EMA might need a longer period to sufficiently smooth out price noise, potentially leading to more lag, a biquad filter can achieve similar or better smoothing with less lag. This is crucial in financial markets where timely information is vital for making trading decisions.
Moreover, the biquad filter allows for independent control of the cutoff frequency and the Q factor. The Q factor, in particular, is a powerful parameter that affects the filter's resonance at the cutoff frequency. By adjusting the Q factor, users can fine-tune the filter's behavior to suit different market conditions or trading styles. This level of control is simply not available with basic moving averages.
Another advantage of the biquad filter is its superior phase response. In the context of financial data, this translates to more consistent lag across different frequency components of the price action. This can lead to more reliable signals, especially when it comes to identifying trend changes or price reversals.
The computational efficiency of biquad filters is also worth noting. Despite their more complex mathematical foundation, biquad filters can be implemented very efficiently, often requiring only a few operations per sample. This makes them suitable for real-time applications and high-frequency trading scenarios.
Furthermore, the use of a more sophisticated filter like the biquad can help in reducing false signals. The improved noise rejection capabilities mean that minor price fluctuations are less likely to cause unnecessary crossovers or indicator movements, potentially leading to fewer false breakouts or reversal signals.
In the specific context of a Keltner Channel, using a biquad filter for the center line can provide a more stable and reliable basis for the entire indicator. It can help in better defining the overall trend, which is crucial since the Keltner Channel is often used for trend-following strategies. The smoother, yet more responsive center line can lead to more accurate channel boundaries, potentially improving the reliability of overbought/oversold signals and breakout indications.
In conclusion, this advanced Keltner Channel indicator represents a significant evolution in technical analysis tools, combining the power of traditional Keltner Channels with modern statistical methods and signal processing techniques. By integrating a sophisticated ATR calculation, a biquad low-pass filter, and a complementary oscillator component, this indicator offers traders a comprehensive and nuanced view of market dynamics.
The indicator's strength lies in its ability to adapt to varying market conditions, providing clear visual cues for trend identification, momentum assessment, and potential reversal points. The use of statistically derived ATR values for channel construction and the implementation of a biquad filter for the center line result in a more responsive and accurate representation of price action compared to traditional methods.
Furthermore, the dual nature of this indicator – functioning as both an overlay and an oscillator – allows traders to simultaneously analyze price trends and momentum from different perspectives. This multifaceted approach can lead to more informed decision-making and potentially more reliable trading signals.
The high degree of customization available in the indicator's settings enables traders to fine-tune its performance to suit their specific trading styles and market preferences. From adjustable visual elements to flexible parameter inputs, users can optimize the indicator for various trading scenarios and time frames.
Ultimately, while no indicator can predict market movements with certainty, this advanced Keltner Channel provides traders with a powerful tool for market analysis. By offering a more sophisticated approach to measuring volatility, trend, and momentum, it equips traders with valuable insights to navigate the complex world of financial markets. As with any trading tool, it should be used in conjunction with other forms of analysis and within a well-defined risk management framework to maximize its potential benefits.
Hullinger Bands [AlgoAlpha]🎯 Introducing the Hullinger Bands Indicator ! 🎯
Maximize your trading precision with the Hullinger Bands , an advanced tool that combines the strengths of Hull Moving Averages and Bollinger Bands for a robust trading strategy. This indicator is designed to give traders clear and actionable signals, helping you identify trend changes and optimize entry and exit points with confidence.
✨ Key Features :
📊 Dual-Length Settings : Customize your main and TP signal lengths to fit your trading style.
🎯 Enhanced Band Accuracy : The indicator uses a modified standard deviation calculation for more reliable volatility measures.
🟢🔴 Color-Coded Signals : Easily spot bullish and bearish conditions with customizable color settings.
💡 Dynamic Alerts : Get notified for trend changes and TP signals with built-in alert conditions.
🚀 Quick Guide to Using Hullinger Bands
1. ⭐ Add the Indicator : Add the indicator to favorites by pressing the star icon. Adjust the settings to align with your trading preferences, such as length and multiplier values.
2. 🔍 Analyze Readings : Observe the color-coded bands for real-time insights into market conditions. When price is closer to the upper bands it suggests an overbought market and vice versa if price is closer to the lower bands. Price being above or below the basis can be a trend indicator.
3. 🔔 Set Alerts : Activate alerts for bullish/bearish trends and TP signals, ensuring you never miss a crucial market movement.
🔍 How It Works
The Hullinger Bands indicator calculates a central line (basis) using a simple moving average, while the upper and lower bands are derived from a modified standard deviation of price movements. Unlike the traditional Bollinger Bands, the standard deviation in the Hullinger bands uses the Hull Moving Average instead of the Simple Moving Average to calculate the average variance for standard deviation calculations, this give the modified standard deviation output "memory" and the bands can be observed expanding even after the price has started consolidating, this can identify when the trend has exhausted better as the distance between the price and the bands is more apparent. The color of the bands changes dynamically, based on the proximity of the closing price to the bands, providing instant visual cues for market sentiment. The indicator also plots TP signals when price crosses these bands, allowing traders to make informed decisions. Additionally, alerts are configured to notify you of crucial market shifts, ensuring you stay ahead of the curve.
Fear/Greed Zone Reversals [UAlgo]The "Fear/Greed Zone Reversals " indicator is a custom technical analysis tool designed for TradingView, aimed at identifying potential reversal points in the market based on sentiment zones characterized by fear and greed. This indicator utilizes a combination of moving averages, standard deviations, and price action to detect when the market transitions from extreme fear to greed or vice versa. By identifying these critical turning points, traders can gain insights into potential buy or sell opportunities.
🔶 Key Features
Customizable Moving Averages: The indicator allows users to select from various types of moving averages (SMA, EMA, WMA, VWMA, HMA) for both fear and greed zone calculations, enabling flexible adaptation to different trading strategies.
Fear Zone Settings:
Fear Source: Select the price data point (e.g., close, high, low) used for Fear Zone calculations.
Fear Period: This defines the lookback window for calculating the Fear Zone deviation.
Fear Stdev Period: This sets the period used to calculate the standard deviation of the Fear Zone deviation.
Greed Zone Settings:
Greed Source: Select the price data point (e.g., close, high, low) used for Greed Zone calculations.
Greed Period: This defines the lookback window for calculating the Greed Zone deviation.
Greed Stdev Period: This sets the period used to calculate the standard deviation of the Greed Zone deviation.
Alert Conditions: Integrated alert conditions notify traders in real-time when a reversal in the fear or greed zone is detected, allowing for timely decision-making.
🔶 Interpreting Indicator
Greed Zone: A Greed Zone is highlighted when the price deviates significantly above the chosen moving average. This suggests market sentiment might be leaning towards greed, potentially indicating a selling opportunity.
Fear Zone Reversal: A Fear Zone is highlighted when the price deviates significantly below the chosen moving average of the selected price source. This suggests market sentiment might be leaning towards fear, potentially indicating a buying opportunity. When the indicator identifies a reversal from a fear zone, it suggests that the market is transitioning from a period of intense selling pressure to a more neutral or potentially bullish state. This is typically indicated by an upward arrow (▲) on the chart, signaling a potential buy opportunity. The fear zone is characterized by high price volatility and overselling, making it a crucial point for traders to consider entering the market.
Greed Zone Reversal: Conversely, a Greed Zone is highlighted when the price deviates significantly above the chosen moving average. This suggests market sentiment might be leaning towards greed, potentially indicating a selling opportunity. When the indicator detects a reversal from a greed zone, it indicates that the market may be moving from an overbought condition back to a more neutral or bearish state. This is marked by a downward arrow (▼) on the chart, suggesting a potential sell opportunity. The greed zone is often associated with overconfidence and high buying activity, which can precede a market correction.
🔶 Why offer multiple moving average types?
By providing various moving average types (SMA, EMA, WMA, VWMA, HMA) , the indicator offers greater flexibility for traders to tailor the indicator to their specific trading strategies and market preferences. Different moving averages react differently to price data and can produce varying signals.
SMA (Simple Moving Average): Provides an equal weighting to all data points within the specified period.
EMA (Exponential Moving Average): Gives more weight to recent data points, making it more responsive to price changes.
WMA (Weighted Moving Average): Allows for custom weighting of data points, providing more flexibility in the calculation.
VWMA (Volume Weighted Moving Average): Considers both price and volume data, giving more weight to periods with higher trading volume.
HMA (Hull Moving Average): A combination of weighted moving averages designed to reduce lag and provide a smoother curve.
Offering multiple options allows traders to:
Experiment: Traders can try different moving averages to see which one produces the most accurate signals for their specific market.
Adapt to different market conditions: Different market conditions may require different moving average types. For example, a fast-moving market might benefit from a faster moving average like an EMA, while a slower-moving market might be better suited to a slower moving average like an SMA.
Personalize: Traders can choose the moving average that best aligns with their personal trading style and risk tolerance.
In essence, providing a variety of moving average types empowers traders to create a more personalized and effective trading experience.
🔶 Disclaimer
Use with Caution: This indicator is provided for educational and informational purposes only and should not be considered as financial advice. Users should exercise caution and perform their own analysis before making trading decisions based on the indicator's signals.
Not Financial Advice: The information provided by this indicator does not constitute financial advice, and the creator (UAlgo) shall not be held responsible for any trading losses incurred as a result of using this indicator.
Backtesting Recommended: Traders are encouraged to backtest the indicator thoroughly on historical data before using it in live trading to assess its performance and suitability for their trading strategies.
Risk Management: Trading involves inherent risks, and users should implement proper risk management strategies, including but not limited to stop-loss orders and position sizing, to mitigate potential losses.
No Guarantees: The accuracy and reliability of the indicator's signals cannot be guaranteed, as they are based on historical price data and past performance may not be indicative of future results.
Growth TrendThis powerful indicator plots the number of growth stocks in an uptrend, providing a comprehensive view of the market's overall direction. By applying a simple moving average, users can quickly gauge the trend and make informed trading decisions.
How does it work?
The script pulls tickers from the S & P 500 Growth ETF. It then plots the number of stocks from the ETF that are trending above a medium-term Moving Average, signaling an uptrend.
A moving average is applied to help understand the trend.
The background is shaded when 3 or more consecutive days are above (green) or below (red) the moving average.
Key Features:
Visual Trend Identification: The indicator shades the background green when three or more consecutive days are above the moving average, indicating a strong uptrend. Conversely, it shades red when three consecutive days are below the moving average, signaling a downtrend.
Breakout Insights: By tracking the trend, traders can identify when breakouts in growth stocks are more likely to occur or fail. This helps traders time their entries and exits more effectively.
Trend Strength Assessment: The indicator provides a quick visual assessment of the trend's strength, enabling traders to adjust their strategies accordingly.
Why is this indicator helpful?
Improved Trading Decisions: By understanding the overall trend and strength of growth stocks, traders can make more informed decisions about when to buy or sell.
Enhanced Risk Management: The indicator helps traders identify potential trend reversals, enabling them to adjust their positions and manage risk more effectively.
Market Insights: The Growth Stock Trend Indicator provides a valuable perspective on the market's overall direction, helping traders stay ahead of the curve.
By incorporating this indicator into their trading strategy, traders can gain a competitive edge and make more informed decisions in the growth stock market.
Cinnamon_Bear Indicators MA LibraryLibrary "Cinnamon_BearIndicatorsMALibrary"
This is a personal Library of the NON built-in PineScript Moving Average function used to code indicators
ma_dema(source, length)
Double Exponential Moving Average (DEMA)
Parameters:
source (simple float)
length (simple int)
Returns: A double level of smoothing helps to follow price movements more closely while still reducing noise compared to a single EMA.
ma_dsma(source, length)
Double Smoothed Moving Average (DSMA)
Parameters:
source (simple float)
length (simple int)
Returns: A double level of smoothing helps to follow price movements more closely while still reducing noise compared to a single SMA.
ma_tema(source, length)
Triple Exponential Moving Average (TEMA)
Parameters:
source (simple float)
length (simple int)
Returns: A Triple level of smoothing helps to follow price movements even more closely compared to a DEMA.
ma_vwema(source, length)
Volume-Weighted Exponential Moving Average (VWEMA)
Parameters:
source (simple float)
length (simple int)
Returns: The VWEMA weights based on volume and recent price, giving more weight to periods with higher trading volumes.
ma_hma(source, length)
Hull Moving Average (HMA)
Parameters:
source (simple float)
length (simple int)
Returns: The HMA formula combines the properties of the weighted moving average (WMA) and the exponential moving average (EMA) to achieve a smoother and more responsive curve.
ma_ehma(source, length)
Enhanced Moving Average (EHMA)
Parameters:
source (simple float)
length (simple int)
Returns: The EHMA is calculated similarly to the Hull Moving Average (HMA) but uses a different weighting factor to further improve responsiveness.
ma_trix(source, length)
Triple Exponential Moving Average (TRIX)
Parameters:
source (simple float)
length (simple int)
Returns: The TRIX is an oscillator that shows the percentage change of a triple EMA. It is designed to filter out minor price movements and display only the most significant trends. The TRIX is a momentum indicator that can help identify trends and buy or sell signals.
ma_lsma(source, length)
Linear Weighted Moving Average (LSMA)
Parameters:
source (simple float)
length (simple int)
Returns: A moving average that gives more weight to recent prices. It is calculated using a formula that assigns linear weights to prices, with the highest weight given to the most recent price and the lowest weight given to the furthest price in the series.
ma_wcma(source, length)
Weighted Cumulative Moving Average (WCMA)
Parameters:
source (simple float)
length (simple int)
Returns: A moving average that gives more weight to recent prices. Compared to a LSMA, the WCMA the weights of data increase linearly with time, so the most recent data has a greater weight compared to older data. This means that the contribution of the most recent data to the moving average is more significant.
ma_vidya(source, length)
Variable Index Dynamic Average (VIDYA)
Parameters:
source (simple float)
length (simple int)
Returns: It is an adaptive moving average that adjusts its momentum based on market volatility using the formula of Chande Momentum Oscillator (CMO) .
ma_zlma(source, length)
Zero-Lag Moving Average (ZLMA)
Parameters:
source (simple float)
length (simple int)
Returns: Its aims to minimize the lag typically associated with MA, designed to react more quickly to price changes.
ma_gma(source, length, power)
Generalized Moving Average (GMA)
Parameters:
source (simple float)
length (simple int)
power (simple int)
Returns: It is a moving average that uses a power parameter to adjust the weight of historical data. This allows the GMA to adapt to various styles of MA.
ma_tma(source, length)
Triangular Moving Average (TMA)
Parameters:
source (simple float)
length (simple int)
Returns: MA more sensitive to changes in recent data compared to the SMA, providing a moving average that better adapts to short-term price changes.
BAERMThe Bitcoin Auto-correlation Exchange Rate Model: A Novel Two Step Approach
THIS IS NOT FINANCIAL ADVICE. THIS ARTICLE IS FOR EDUCATIONAL AND ENTERTAINMENT PURPOSES ONLY.
If you enjoy this software and information, please consider contributing to my lightning address
Prelude
It has been previously established that the Bitcoin daily USD exchange rate series is extremely auto-correlated
In this article, we will utilise this fact to build a model for Bitcoin/USD exchange rate. But not a model for predicting the exchange rate, but rather a model to understand the fundamental reasons for the Bitcoin to have this exchange rate to begin with.
This is a model of sound money, scarcity and subjective value.
Introduction
Bitcoin, a decentralised peer to peer digital value exchange network, has experienced significant exchange rate fluctuations since its inception in 2009. In this article, we explore a two-step model that reasonably accurately captures both the fundamental drivers of Bitcoin’s value and the cyclical patterns of bull and bear markets. This model, whilst it can produce forecasts, is meant more of a way of understanding past exchange rate changes and understanding the fundamental values driving the ever increasing exchange rate. The forecasts from the model are to be considered inconclusive and speculative only.
Data preparation
To develop the BAERM, we used historical Bitcoin data from Coin Metrics, a leading provider of Bitcoin market data. The dataset includes daily USD exchange rates, block counts, and other relevant information. We pre-processed the data by performing the following steps:
Fixing date formats and setting the dataset’s time index
Generating cumulative sums for blocks and halving periods
Calculating daily rewards and total supply
Computing the log-transformed price
Step 1: Building the Base Model
To build the base model, we analysed data from the first two epochs (time periods between Bitcoin mining reward halvings) and regressed the logarithm of Bitcoin’s exchange rate on the mining reward and epoch. This base model captures the fundamental relationship between Bitcoin’s exchange rate, mining reward, and halving epoch.
where Yt represents the exchange rate at day t, Epochk is the kth epoch (for that t), and epsilont is the error term. The coefficients beta0, beta1, and beta2 are estimated using ordinary least squares regression.
Base Model Regression
We use ordinary least squares regression to estimate the coefficients for the betas in figure 2. In order to reduce the possibility of over-fitting and ensure there is sufficient out of sample for testing accuracy, the base model is only trained on the first two epochs. You will notice in the code we calculate the beta2 variable prior and call it “phaseplus”.
The code below shows the regression for the base model coefficients:
\# Run the regression
mask = df\ < 2 # we only want to use Epoch's 0 and 1 to estimate the coefficients for the base model
reg\_X = df.loc\ [mask, \ \].shift(1).iloc\
reg\_y = df.loc\ .iloc\
reg\_X = sm.add\_constant(reg\_X)
ols = sm.OLS(reg\_y, reg\_X).fit()
coefs = ols.params.values
print(coefs)
The result of this regression gives us the coefficients for the betas of the base model:
\
or in more human readable form: 0.029, 0.996869586, -0.00043. NB that for the auto-correlation/momentum beta, we did NOT round the significant figures at all. Since the momentum is so important in this model, we must use all available significant figures.
Fundamental Insights from the Base Model
Momentum effect: The term 0.997 Y suggests that the exchange rate of Bitcoin on a given day (Yi) is heavily influenced by the exchange rate on the previous day. This indicates a momentum effect, where the price of Bitcoin tends to follow its recent trend.
Momentum effect is a phenomenon observed in various financial markets, including stocks and other commodities. It implies that an asset’s price is more likely to continue moving in its current direction, either upwards or downwards, over the short term.
The momentum effect can be driven by several factors:
Behavioural biases: Investors may exhibit herding behaviour or be subject to cognitive biases such as confirmation bias, which could lead them to buy or sell assets based on recent trends, reinforcing the momentum.
Positive feedback loops: As more investors notice a trend and act on it, the trend may gain even more traction, leading to a self-reinforcing positive feedback loop. This can cause prices to continue moving in the same direction, further amplifying the momentum effect.
Technical analysis: Many traders use technical analysis to make investment decisions, which often involves studying historical exchange rate trends and chart patterns to predict future exchange rate movements. When a large number of traders follow similar strategies, their collective actions can create and reinforce exchange rate momentum.
Impact of halving events: In the Bitcoin network, new bitcoins are created as a reward to miners for validating transactions and adding new blocks to the blockchain. This reward is called the block reward, and it is halved approximately every four years, or every 210,000 blocks. This event is known as a halving.
The primary purpose of halving events is to control the supply of new bitcoins entering the market, ultimately leading to a capped supply of 21 million bitcoins. As the block reward decreases, the rate at which new bitcoins are created slows down, and this can have significant implications for the price of Bitcoin.
The term -0.0004*(50/(2^epochk) — (epochk+1)²) accounts for the impact of the halving events on the Bitcoin exchange rate. The model seems to suggest that the exchange rate of Bitcoin is influenced by a function of the number of halving events that have occurred.
Exponential decay and the decreasing impact of the halvings: The first part of this term, 50/(2^epochk), indicates that the impact of each subsequent halving event decays exponentially, implying that the influence of halving events on the Bitcoin exchange rate diminishes over time. This might be due to the decreasing marginal effect of each halving event on the overall Bitcoin supply as the block reward gets smaller and smaller.
This is antithetical to the wrong and popular stock to flow model, which suggests the opposite. Given the accuracy of the BAERM, this is yet another reason to question the S2F model, from a fundamental perspective.
The second part of the term, (epochk+1)², introduces a non-linear relationship between the halving events and the exchange rate. This non-linear aspect could reflect that the impact of halving events is not constant over time and may be influenced by various factors such as market dynamics, speculation, and changing market conditions.
The combination of these two terms is expressed by the graph of the model line (see figure 3), where it can be seen the step from each halving is decaying, and the step up from each halving event is given by a parabolic curve.
NB - The base model has been trained on the first two halving epochs and then seeded (i.e. the first lag point) with the oldest data available.
Constant term: The constant term 0.03 in the equation represents an inherent baseline level of growth in the Bitcoin exchange rate.
In any linear or linear-like model, the constant term, also known as the intercept or bias, represents the value of the dependent variable (in this case, the log-scaled Bitcoin USD exchange rate) when all the independent variables are set to zero.
The constant term indicates that even without considering the effects of the previous day’s exchange rate or halving events, there is a baseline growth in the exchange rate of Bitcoin. This baseline growth could be due to factors such as the network’s overall growth or increasing adoption, or changes in the market structure (more exchanges, changes to the regulatory environment, improved liquidity, more fiat on-ramps etc).
Base Model Regression Diagnostics
Below is a summary of the model generated by the OLS function
OLS Regression Results
\==============================================================================
Dep. Variable: logprice R-squared: 0.999
Model: OLS Adj. R-squared: 0.999
Method: Least Squares F-statistic: 2.041e+06
Date: Fri, 28 Apr 2023 Prob (F-statistic): 0.00
Time: 11:06:58 Log-Likelihood: 3001.6
No. Observations: 2182 AIC: -5997.
Df Residuals: 2179 BIC: -5980.
Df Model: 2
Covariance Type: nonrobust
\==============================================================================
coef std err t P>|t| \
\------------------------------------------------------------------------------
const 0.0292 0.009 3.081 0.002 0.011 0.048
logprice 0.9969 0.001 1012.724 0.000 0.995 0.999
phaseplus -0.0004 0.000 -2.239 0.025 -0.001 -5.3e-05
\==============================================================================
Omnibus: 674.771 Durbin-Watson: 1.901
Prob(Omnibus): 0.000 Jarque-Bera (JB): 24937.353
Skew: -0.765 Prob(JB): 0.00
Kurtosis: 19.491 Cond. No. 255.
\==============================================================================
Below we see some regression diagnostics along with the regression itself.
Diagnostics: We can see that the residuals are looking a little skewed and there is some heteroskedasticity within the residuals. The coefficient of determination, or r2 is very high, but that is to be expected given the momentum term. A better r2 is manually calculated by the sum square of the difference of the model to the untrained data. This can be achieved by the following code:
\# Calculate the out-of-sample R-squared
oos\_mask = df\ >= 2
oos\_actual = df.loc\
oos\_predicted = df.loc\
residuals\_oos = oos\_actual - oos\_predicted
SSR = np.sum(residuals\_oos \*\* 2)
SST = np.sum((oos\_actual - oos\_actual.mean()) \*\* 2)
R2\_oos = 1 - SSR/SST
print("Out-of-sample R-squared:", R2\_oos)
The result is: 0.84, which indicates a very close fit to the out of sample data for the base model, which goes some way to proving our fundamental assumption around subjective value and sound money to be accurate.
Step 2: Adding the Damping Function
Next, we incorporated a damping function to capture the cyclical nature of bull and bear markets. The optimal parameters for the damping function were determined by regressing on the residuals from the base model. The damping function enhances the model’s ability to identify and predict bull and bear cycles in the Bitcoin market. The addition of the damping function to the base model is expressed as the full model equation.
This brings me to the question — why? Why add the damping function to the base model, which is arguably already performing extremely well out of sample and providing valuable insights into the exchange rate movements of Bitcoin.
Fundamental reasoning behind the addition of a damping function:
Subjective Theory of Value: The cyclical component of the damping function, represented by the cosine function, can be thought of as capturing the periodic fluctuations in market sentiment. These fluctuations may arise from various factors, such as changes in investor risk appetite, macroeconomic conditions, or technological advancements. Mathematically, the cyclical component represents the frequency of these fluctuations, while the phase shift (α and β) allows for adjustments in the alignment of these cycles with historical data. This flexibility enables the damping function to account for the heterogeneity in market participants’ preferences and expectations, which is a key aspect of the subjective theory of value.
Time Preference and Market Cycles: The exponential decay component of the damping function, represented by the term e^(-0.0004t), can be linked to the concept of time preference and its impact on market dynamics. In financial markets, the discounting of future cash flows is a common practice, reflecting the time value of money and the inherent uncertainty of future events. The exponential decay in the damping function serves a similar purpose, diminishing the influence of past market cycles as time progresses. This decay term introduces a time-dependent weight to the cyclical component, capturing the dynamic nature of the Bitcoin market and the changing relevance of past events.
Interactions between Cyclical and Exponential Decay Components: The interplay between the cyclical and exponential decay components in the damping function captures the complex dynamics of the Bitcoin market. The damping function effectively models the attenuation of past cycles while also accounting for their periodic nature. This allows the model to adapt to changing market conditions and to provide accurate predictions even in the face of significant volatility or structural shifts.
Now we have the fundamental reasoning for the addition of the function, we can explore the actual implementation and look to other analogies for guidance —
Financial and physical analogies to the damping function:
Mathematical Aspects: The exponential decay component, e^(-0.0004t), attenuates the amplitude of the cyclical component over time. This attenuation factor is crucial in modelling the diminishing influence of past market cycles. The cyclical component, represented by the cosine function, accounts for the periodic nature of market cycles, with α determining the frequency of these cycles and β representing the phase shift. The constant term (+3) ensures that the function remains positive, which is important for practical applications, as the damping function is added to the rest of the model to obtain the final predictions.
Analogies to Existing Damping Functions: The damping function in the BAERM is similar to damped harmonic oscillators found in physics. In a damped harmonic oscillator, an object in motion experiences a restoring force proportional to its displacement from equilibrium and a damping force proportional to its velocity. The equation of motion for a damped harmonic oscillator is:
x’’(t) + 2γx’(t) + ω₀²x(t) = 0
where x(t) is the displacement, ω₀ is the natural frequency, and γ is the damping coefficient. The damping function in the BAERM shares similarities with the solution to this equation, which is typically a product of an exponential decay term and a sinusoidal term. The exponential decay term in the BAERM captures the attenuation of past market cycles, while the cosine term represents the periodic nature of these cycles.
Comparisons with Financial Models: In finance, damped oscillatory models have been applied to model interest rates, stock prices, and exchange rates. The famous Black-Scholes option pricing model, for instance, assumes that stock prices follow a geometric Brownian motion, which can exhibit oscillatory behavior under certain conditions. In fixed income markets, the Cox-Ingersoll-Ross (CIR) model for interest rates also incorporates mean reversion and stochastic volatility, leading to damped oscillatory dynamics.
By drawing on these analogies, we can better understand the technical aspects of the damping function in the BAERM and appreciate its effectiveness in modelling the complex dynamics of the Bitcoin market. The damping function captures both the periodic nature of market cycles and the attenuation of past events’ influence.
Conclusion
In this article, we explored the Bitcoin Auto-correlation Exchange Rate Model (BAERM), a novel 2-step linear regression model for understanding the Bitcoin USD exchange rate. We discussed the model’s components, their interpretations, and the fundamental insights they provide about Bitcoin exchange rate dynamics.
The BAERM’s ability to capture the fundamental properties of Bitcoin is particularly interesting. The framework underlying the model emphasises the importance of individuals’ subjective valuations and preferences in determining prices. The momentum term, which accounts for auto-correlation, is a testament to this idea, as it shows that historical price trends influence market participants’ expectations and valuations. This observation is consistent with the notion that the price of Bitcoin is determined by individuals’ preferences based on past information.
Furthermore, the BAERM incorporates the impact of Bitcoin’s supply dynamics on its price through the halving epoch terms. By acknowledging the significance of supply-side factors, the model reflects the principles of sound money. A limited supply of money, such as that of Bitcoin, maintains its value and purchasing power over time. The halving events, which reduce the block reward, play a crucial role in making Bitcoin increasingly scarce, thus reinforcing its attractiveness as a store of value and a medium of exchange.
The constant term in the model serves as the baseline for the model’s predictions and can be interpreted as an inherent value attributed to Bitcoin. This value emphasizes the significance of the underlying technology, network effects, and Bitcoin’s role as a medium of exchange, store of value, and unit of account. These aspects are all essential for a sound form of money, and the model’s ability to account for them further showcases its strength in capturing the fundamental properties of Bitcoin.
The BAERM offers a potential robust and well-founded methodology for understanding the Bitcoin USD exchange rate, taking into account the key factors that drive it from both supply and demand perspectives.
In conclusion, the Bitcoin Auto-correlation Exchange Rate Model provides a comprehensive fundamentally grounded and hopefully useful framework for understanding the Bitcoin USD exchange rate.
ETHE Premium SmoothedThis script visualizes the "premium" or "deflection" between the price of Ethereum in a fund (ETHE) and the price of Ethereum itself. It's used to detect when the ETHE fund is trading at a significant premium or discount compared to the actual value of Ethereum it represents.
Components:
Two-Pole Smoothing Function: This function acts as a filter to smoothen data, specifically the calculated deflection. Using a combination of exponential math and trigonometry, the function reduces the noise from the raw deflection data, providing a clearer view of the trend.
ETH Per Share: A constant that represents the amount of Ethereum backing each share of ETHE.
Tickers: The script fetches data for two tickers:
ETHE ticker from OTC markets.
Ethereum's ticker from Coinbase.
Deflection Calculation: This represents the difference between the price of one share of ETHE and its actual value in Ethereum. This percentage gives an idea of how much more or less the ETHE is trading compared to its intrinsic Ethereum value.
Smoothing: The raw deflection data is then passed through the Two-Pole Smoothing function to produce the "smoothed" deflection curve.
Visuals:
A horizontal dashed red line at 0%, indicating the point where ETHE trades exactly at its intrinsic Ethereum value.
A plot of the smoothed deflection, with its color changing based on whether the value is above or below zero (green for above, red for below).
Usage:
Traders can use this script to identify potential buy or sell opportunities. For instance, if ETHE is trading at a significant discount (a negative deflection value), it might be an attractive buying opportunity, assuming the discrepancy will eventually correct itself. Conversely, if ETHE is trading at a significant premium (a positive deflection value), it might indicate a potential overvaluation.
[blackcat] L3 CCI-RSI ComboCCI-RSI Combo indicator is a combination indicator that includes CCI and RSI. It uses some parameters to calculate the values of CCI and RSI, and generates corresponding charts based on these values. On the chart, when CCI exceeds 100 or falls below -100, yellow or magenta filling areas are displayed. Additionally, gradient colors are used on the RSI chart to represent different value ranges. Based on the values of CCI and RSI, buying or selling signals can be identified and "B" or "S" labels are displayed at the corresponding positions. It utilizes some technical indicators and logic to generate buying and selling signals, and displays the corresponding labels on the chart.
Here are the main parts of the code:
1. Definition of some variables:
- `N`, `M`, `N1`: Parameters used to calculate CCI and RSI.
- `xcn(cond, len)` and `xex(cond, len)`: Two functions used to calculate the number of times a condition is met.
2. Calculation of CCI (Commodity Channel Index):
- Calculate the CCI value based on the formula `(TYP - ta.sma(TYP, M)) / (0.015 * ta.stdev(TYP, M))`.
- Use the `plot()` function to plot CCI on the chart and set the color based on its value.
3. Calculation of RSI (Relative Strength Index):
- First calculate RSI1 by taking the average of positive differences between closing prices and the average of all absolute differences, and then multiplying by 100.
- Then use the ALMA function to transform RSI1 into a smoother curve.
- Use the `plot()` function to plot RSI on the chart and select gradient colors for shading based on its value.
4. Setting up the gradient color array:
- Create a color array using `array.new_color()` and add a series of color values to it.
5. Generating buying and selling signals based on conditions:
- Use logical operators and technical indicator functions to determine the conditions for buying and selling.
- Use the `label.new()` function to draw the corresponding labels on the chart to represent buying or selling signals.