NDX Ladder → Adjusted to Active Ticker (5s & 10s)This indicator allows you to a grid of NDX levels directly on the NQ! (E-mini NASDAQ 100 Futures) chart, automatically adjusting for the spread between NDX and NQ1!. This is particularly useful for traders who perform technical analysis on SPX but execute trades on NQ1!.
Features:
Renders every 5 and 10 points steps of the NDX in your current chart.
The script adjusts these levels in real-time based on the current spread between NDX and NQ / MNQ
Plots updated horizontal lines that move with the spread
Spread
Volume Spread Candle█ Overview
Volume Spread Candle is a Solid tool for VSA (Volume Spread Analysis).
█ Setting
please put on VSCandle above the candle chart.
█ Features
Candle color reflect volume size.
Back ground color reflect Spread size.
Warning Volume is relatively large volume compared to the Volume flow (up volume MA - down volume MA).
Yellow square mark appears when Warning volume.
Volume Density is Volume / Spread.
Yellow circle mark appears when large Volume Density.
█ Usage
Abnormal Volume and Spread hint what about to happen.
SPX Ladder → Adjusted to Active Ticker (5s & 10s)This indicator allows you to a grid of SPX levels directly on the ES1! (E-mini S&P 500 Futures) chart, automatically adjusting for the spread between SPX and ES1!. This is particularly useful for traders who perform technical analysis on SPX but execute trades on ES1!.
Features:
Renders every 5 and 10 points steps of the SPX in your current chart.
The script adjusts these levels in real-time based on the current spread between SPX and ES1!
Plots updated horizontal lines that move with the spread
Supports Multiple Tickers, ES1!, SPY and SPX500USD.
Ideal for futures traders who want SPX context while trading ES1!.
Dual Custom Index with SpreadDual Custom Index with Spread
Create powerful custom indices from any instruments and analyze their relative strength dynamics
Overview
This advanced indicator allows you to build two completely customizable indices from your choice of instruments and analyze their spread relationship. Perfect for inter-market analysis, sector rotation strategies, currency strength comparisons, and sophisticated relative performance studies.
Key Features
🔧 Fully Customizable Index Construction
Build each index from up to 6 instruments with individual weightings
Enable/disable instruments on the fly without losing settings
Automatic weight validation ensures mathematically accurate calculations
Invert functionality for instruments that move opposite to index strength
📊 Advanced ADX-Based Methodology
Uses sophisticated ADX +DI/-DI directional bias calculations
Normalized bias calculation for consistent scaling across different instruments
Optimized default settings for intraday trading with full customization options
Professional-grade smoothing and filtering options
📈 Dual Analysis Modes
Difference Mode: Shows absolute strength difference (Index1 - Index2)
Ratio Mode: Shows relative performance ratio (Index1 / Index2)
Additional spread smoothing for cleaner signals
🎨 Professional Display Options
Custom labels with full color, size, and positioning control
Dynamic "Follow Line" labels that move with your data
Static corner positioning for reference displays
Clean error messaging and validation feedback
Use Cases
Gold Trading: Create gold strength vs USD strength indices for precise market timing
Sector Analysis: Compare technology vs financial sector strength for rotation strategies
Currency Strength: Build custom currency baskets for advanced forex analysis
Commodity Spreads: Analyze relative strength between different commodity groups
Regional Markets: Compare strength between different geographical market indices
Crypto Analysis: Track relative performance between different cryptocurrency sectors
Technical Specifications
Instruments per Index: Up to 6 with individual enable/disable
Weight Validation: Automatic 100% total weight enforcement
Calculation Method: ADX-based directional bias with trend strength weighting
Smoothing Options: Multiple levels of customizable smoothing
Error Handling: Professional validation with clear user feedback
Optimization Tips
Intraday Trading: Use DI Length 3-7 for faster response
Daily Analysis: Use DI Length 10-14 for smoother signals
Noisy Markets: Increase Final Smoothing for cleaner signals
Trending Markets: Lower smoothing values for faster reaction
Perfect for traders who need sophisticated inter-market analysis tools beyond standard indicators. Whether you're analyzing gold vs dollar dynamics, sector rotation opportunities, or custom currency strength relationships, this indicator provides institutional-grade analysis capabilities with complete customization flexibility.
Spread Mean Reversion Strategy [SciQua]╭───────────────────────────────────────╮
Spread Mean Reversion Strategy
╰───────────────────────────────────────╯
This invite-only futures spread strategy applies a statistical mean reversion framework, executing limit orders exclusively at calculated Z-score thresholds for precise, rules-based entries and exits. It is designed for CME-style spreads and synthetic instruments with well-defined reversion tendencies.
╭────────────╮
Core Concept
╰────────────╯
The strategy calculates a rolling mean and standard deviation of a chosen spread or synthetic price series, then computes the Z-score to measure deviation from the mean in standard deviation units.
Long entries trigger when Z crosses upward through a negative entry threshold (`-devEnter`). A buy limit is placed exactly at the price corresponding to that Z-score, optionally offset by a configurable tick amount.
Short entries trigger when Z crosses downward through a positive entry threshold (`+devEnter`). A sell limit is placed at the corresponding threshold price, also with optional offset.
Exits use the same threshold method, with an independent `Close Limit Offset` to fine-tune exit placement.
╭────────────╮
Key Features
╰────────────╯
Persistence filter – Requires the Z-score to remain beyond threshold for a configurable number of bars before entry.
Cooldown after exits – Prevents immediate re-entry to reduce over-trading.
Daily and weekend flattening – Force-flattens positions via limit orders before exchange maintenance breaks and weekend closes.
Auto-rollover detection with persistence – Detects when the second contract month’s daily volume exceeds the first for a set number of days, then blocks new entries (optional).
Configurable tick offsets – Independently adjust entry and exit levels relative to threshold prices.
Minimum spread width filter – Blocks trades when long/short entry thresholds are too close together.
Contract multiplier override – Allows correct sizing for synthetic symbols where `syminfo.pointvalue` is incorrect or missing.
Limit-only execution – All entries, exits, and forced-flat actions are executed with limit orders for price control.
╭────────────────────╮
Entry Blocking Rules
╰────────────────────╯
New trades are blocked:
During daily maintenance break pre-windows
During weekend close pre-windows
After rollover triggers, if `Block After Roll` is enabled
╭────────────────────────╮
Intended Markets & Usage
╰────────────────────────╯
Built for futures spreads and synthetic instruments , including calendar spreads.
Performs best in markets with clear seasonal or statistical mean-reverting tendencies.
Not designed for strongly trending, non-reverting markets.
╭──────────────────────────╮
Risk Management & Defaults
╰──────────────────────────╯
Fixed default position size of 1 contract (qty calc function available for customization).
Realistic commission and slippage assumptions pre-set.
Pyramiding disabled by default.
Default Z-score levels: Entry at ±2.0, Exit at ±0.5.
Separate tick offset controls for entries and exits.
Note: This strategy is for research and backtesting purposes only. Past performance does not guarantee future results. All use is subject to explicit written permission from the author.
TSD Quantum [Moeinudin Montazerfaraj] 🔸 "TSD" stands for **Trend 1-2-3 and Supply & Demand**, which is the foundation of the trading style this indicator is built upon.
🔹 TSD Quantum is a specialized indicator designed exclusively for day traders who trade EURUSD, XAUUSD (Gold), and DAX40 on the 1H, 15M, and 5M timeframes using a Supply & Demand-based strategy.
This indicator is **not suitable for other symbols** and has been tailored specifically for these three assets to ensure high precision and effectiveness.
---
### 🔍 Key Features:
✅ **Trading Checklist Panel**
A built-in checklist helps you track every rule in your trading plan. If even one condition is left unchecked, the system highlights it in red and marks the trade as "Not Allowed." This feature enhances trading discipline.
✅ **Spread & ATR Control Panel**
Supports both auto-calculated and fixed values for spread and ATR. This is especially helpful when placing stop-losses quickly and accurately.
✅ **Inside & Outside Candle Detection**
A dedicated panel highlights whether the last candle is inside or outside. Hovering your mouse over the chart elements automatically colorizes the candles:
🔵 Blue = Outside candle
🔴 Red = Inside candle
Also displays the high/low of the latest outside bar.
✅ **Weekly Trade Stats Panel**
Custom-built for the mentioned three assets. You can enter your trades using either fixed risk or floating risk models.
✅ **Performance Metrics**
Helps you build and adjust a floating risk model—so you don’t have to enter every trade with the same lot size. Improves risk management across multiple trades.
✅ **Base Candles Display**
Grey and white base candles are marked based on supply and demand zones.
✅ **EOT Candles**
Candles with a green dot underneath indicate valid EOT opportunities for potential move-outs.
✅ **RC (Rejection Candle) Detection**
RC candles are automatically detected to alert you of potential traps or weaknesses during Supply/Demand formations.
---
### ⚠️ Disclaimer
This indicator does **not** issue buy/sell signals and **cannot guarantee profit or prevent loss**. It is a **tool for discretionary trading**, not an automated expert advisor.
All decisions must be made by the trader based on their own strategy and risk tolerance.
This is the **latest tested version** of TSD Quantum. All features have been validated and function as intended. Future updates will be provided if needed.
---
🙏 Thank you for reviewing this script. We hope it becomes a valuable addition to your day trading toolkit!
SPX Levels Adjusted to Active TickerThis indicator allows you to plot custom SPX levels directly on the ES1! (E-mini S&P 500 Futures) chart, automatically adjusting for the spread between SPX and ES1!. This is particularly useful for traders who perform technical analysis on SPX but execute trades on ES1!.
Features:
Input up to three SPX key levels to track (e.g., 5000, 4950, 4900)
The script adjusts these levels in real-time based on the current spread between SPX and ES1!
Displays the spread in the chart header for quick reference
Plots updated horizontal lines that move with the spread
Includes optional labels showing the spread periodically to reduce clutter
Supports Multiple Tickers, ES1!, SPY and SPX500USD.
Ideal for futures traders who want SPX context while trading ES1!.
SPX Levels Adjusted to ES1!This indicator allows you to plot custom SPX levels directly on the ES1! (E-mini S&P 500 Futures) chart, automatically adjusting for the spread between SPX and ES1!. This is particularly useful for traders who perform technical analysis on SPX but execute trades on ES1!.
Features:
Input up to three SPX key levels to track (e.g., 5000, 4950, 4900)
The script adjusts these levels in real-time based on the current spread between SPX and ES1!
Displays the spread in the chart header for quick reference
Plots updated horizontal lines that move with the spread
Includes optional labels showing the spread periodically to reduce clutter
Ideal for futures traders who want SPX context while trading ES1!.
Make sure to apply this indicator on the ES1! chart, not SPX.
4 diffs (CB & IBIT Premium)📊 Script Name: 4 diffs (CB & IBIT Premium)
Version: Pine Script® v6
Overlay: Yes (table displayed on chart)
🧠 What it Does:
This script tracks four important Bitcoin price differentials to monitor spot/perpetual/futures price inefficiencies and ETF premium/discounts, and displays them in a live table on the chart. It helps traders identify arbitrage opportunities or institutional pricing signals.
📈 Displayed Metrics:
Coinbase Premium
→ Difference between Coinbase spot and Binance spot prices.
→ Use case: US vs. offshore spot market divergence.
Coinbase Spot vs Binance Perpetual
→ Difference between Coinbase spot and Binance perpetual price.
→ Use case: Spot-perp basis, often used for funding rate insights or market stress.
Bybit vs Binance Perpetual
→ Difference between Bybit perp and Binance perp price.
→ Use case: Compare derivative pricing across major offshore exchanges.
IBIT Premium (CME vs ETF-implied)
→ Compares CME futures price vs. IBIT’s implied spot BTC value
→ IBIT implied BTC = IBIT ETF price ÷ (BTC held / shares outstanding)
→ Use case: Gauge institutional premium/discount and ETF arbitrage clues.
🛠️ Customization:
Text color of the table is adjustable via the input setting.
📌 Visual Output:
A fixed 2×4 table appears in the top-right corner of the chart.
Each row shows a label and the live price difference in USD.
Spreader – Real-Time Spread Detector for ScalpingSpreader is a professional tool built for scalpers and intraday traders, designed to visually display live bid-ask spread on your chart. By showing you the true market friction in real time, it helps you avoid poor entries and reduce immediate trade losses.
Volumetric Tensegrity🧮 Volumetric Tensegrity unifies two of the Leading Indicator suite's critical engines — ZVOL ( volume anomaly detection ) and OBVX ( directional conviction ). Originally designed as a structural economizer for traders navigating strict indicator limits (e.g. < 10 slots per chart), it was forced to evolve beyond that constraint simply to fulfill it, albeit with a difference. The fatal flaw of traditional fusion, where two metrics are blended mathematically, is that they lose scale integrity (i.e. meaning). VTense encodes optical tensegrity to scale the amplitude of the ZVOL histogram and the slope of the OBVX spread independently, so that expansion and direction may coexist without either dominating the frame.
🧬 Tensegrity , by definition, is an intelligent design principle where elements in compression are suspended within a network of continuous tension, forming a stable, self-supporting structure . Originally conceived in esoteric biomorphology (c.f. Da Vinci, Snelson, Casteneda), tensegrity balances force through opposition, not rigidity. Applied to financial markets, Volumetric Tensegrity captures this same principle: price compresses, volume expands, conviction builds or fades — yet structure holds through the interplay. The result is not a prediction engine, but a pressure field — one that visualizes where structure might bend, break, or rebound based on how volume breathes.
🗜️ Rather than layering multiple indicators and consuming precious chart space, VTense frees up room for complementary overlays like momentum mapping, liquidity tiers, or volatility phase detection — making it ideal for modular traders operating in tight technical real estate.
🧠 Core Logic - VTense separates and preserves two essential structural forces:
• ZVOL Histogram : A Z-score-based expansion map that measures current volume deviation from its historical average. It reveals buildup zones, dormant stretches, and breakout pressure — regardless of price behavior.
• OBVX Spread : A directional conviction curve that tracks the difference between On-Balance Volume and its volume-weighted fast trend. It shows whether the crowd is leaning in (accumulation/distribution) or backing off.
🔊 ZVOL controls the amplitude of the histogram, while OBVX controls the curvature and slope of the spread. Without sacrificing breathing behavior or analytical depth, VTense provides a compact yet dynamic lens to track both expansion pressure and directional bias within a single footprint.
🌊 Volumetric Tensegrity forecasts breakout readiness, trend fatigue, and compression zones by measuring the volatility within volume . Unlike traditional tools that track volatility of price, this indicator reveals when effort becomes unstable — signaling inflection points before price reacts. Designed to decode rhythm shifts at the volume level, it operates as a pre-ignition scanner that thrives on low-timeframe charts (15m and under) while scaling effectively to 1H for validation.
🪖 From Generals to Scouts
👀 When used jointly, ZVOL + OBVX act as the general : deep-field analysts confirming stress, commitment, or exhaustion. VTense , by contrast, functions as a scout — capturing subtle buildup and alignment before structure fully reveals itself. The indicator aims to be a literal vanguard, establishing a position that can be confirmed or flexibly abandoned when the higher authority arrives to evaluate.
🥂 Use the ZVOL + OBVX pair when :
• You need independent axis control and manual dissection
• You’re building long-form confluence setups
• You have more indicator slots than you need
🔎 Use VTense when :
• You need compact clarity across multiple instruments
• You’re prioritizing confluence _detection_ over granular separation
• You’re building efficient multi-layered systems under slot constraints
🏗️ Structural Behavior and Interpretation
🫁 Z VOL Respiration Histogram : Structural Effort vs Baseline
🔵 Compression Coil – volume volatility is low and stable; the market is coiling
🟢 Steady Rhythm – volume is healthy but unremarkable; balanced participation
🟡 Passive/Absorbed Effort – expansion failing to manifest; watch for reversal
🟠 Clean Expansion – actionable volatility rise backed by structure
🔴 Volatile Blowout – chaos, climax; likely end-phase or fakeout
⚖️ ZVOL Respiration measures how hard the crowd is pressing — not just that volume is rising, but how statistically abnormal the surge is. Because it is rescaled proportionally to OBVX, the amplitude of the histogram reflects structural urgency without overwhelming the visual field.
🖐️ OBVX Spread : Real-Time Directional Conviction Behind Price Moves
🔑 The curvature of the spread reveals not just directional bias but crowd temp o: sharp slopes = urgent transitions; gradual slopes = building structural shifts. Curvature is key: sharp OBVX slope = urgency; gentle arcs = controlled drift or indecision.
• Green Rising : Accumulation — upward pressure from real buyers
• Red Falling : Distribution — sell pressure, downward slope
• Flat Curves : Transitional → uncertainty, microstructure digestion
🎭 Synchronized vs Divergent Behavior
⏱️ Synchronized (high-confluence) : often precedes structural breakouts, with internal conviction clearly visible before price resolves.
• ZVOL expands (yellow/orange/red) and OBVX climbs steeply green = strong bullish pressure
• ZVOL expands while OBVX steepens red = growing sell-side intent
🪤 Divergent (conflict tension) : flags potential traps, fakeouts, and liquidity sweeps.
• ZVOL expands sharply, but OBVX flattens or opposes → reactive expansion without crowd commitment
⛔️ Latent Drift + Structural Holding Patterns : tensegrity in action — the market holds tension without directional release.
• ZVOL compresses (blue) + OBVX meanders near zero → structure is resting, building up energy
• After prolonged drift, expect violent asymmetry when balance finally breaks
📚 Phase Interpretation: Dynamic Structural Read
• 1️⃣ Quiet Coil : Histogram flat, OBVX flat → no urgency
• 2️⃣ Initial Pulse : Yellow bars, OBVX slope builds → actionable tension
• 3️⃣ Structural Breath : Synchronized expansion and slope → directional commitment
• 4️⃣ Disagreement : Spike in ZVOL, flattening OBVX → exhaustion risk or false signal
💡 Suggested Use
• Run on 15m charts for breakout anticipation and 1H for validation
• Pair with ZVOL + OBVX to confirm crowd conviction behind the tension phase
• Use as a rhythm filter for the suite's trend indicators (e.g., RDI , SUPeR TReND 2.718 , et. al.)
• Ideal during low-volume regimes to detect pressure buildup before triggers
🧏🏻 Volumetric Tensegrity doesn’t signal. It breathes , and listens to pressure shifts before they speak in price. As a scout, it lets you see structural posture before signals align — helping you front-run resolution with clarity, not prediction.
OverUnder Yield Spread🗺️ OverUnder is a structural regime visualizer , engineered to diagnose the shape, tone, and trajectory of the yield curve. Rather than signaling trades directly, it informs traders of the world they’re operating in. Yield curve steepening or flattening, normalizing or inverting — each regime reflects a macro pressure zone that impacts duration demand, liquidity conditions, and systemic risk appetite. OverUnder abstracts that complexity into a color-coded compression map, helping traders orient themselves before making risk decisions. Whether you’re in bonds, currencies, crypto, or equities, the regime matters — and OverUnder makes it visible.
🧠 Core Logic
Built to show the slope and intent of a selected rate pair, the OverUnder Yield Spread defaults to 🇺🇸US10Y-US2Y, but can just as easily compare global sovereign curves or even dislocated monetary systems. This value is continuously monitored and passed through a debounce filter to determine whether the curve is:
• Inverted, or
• Steepening
If the curve is flattening below zero: the world is bracing for contraction. Policy lags. Risk appetite deteriorates. Duration gets bid, but only as protection. Stocks and speculative assets suffer, regardless of positioning.
📍 Curve Regimes in Bull and Bear Contexts
• Flattening occurs when the short and long ends compress . In a bull regime, flattening may reflect long-end demand or fading growth expectations. In a bear regime, flattening often precedes or confirms central bank tightening.
• Steepening indicates expanding spread . In a bull context, this may signal healthy risk appetite or early expansion. In a bear or crisis context, it may reflect aggressive front-end cuts and dislocation between short- and long-term expectations.
• If the curve is steepening above zero: the world is rotating into early expansion. Risk assets behave constructively. Bond traders position for normalization. Equities and crypto begin trending higher on rising forward expectations.
🖐️ Dynamically Colored Spread Line Reflects 1 of 4 Regime States
• 🟢 Normal / Steepening — early expansion or reflation
• 🔵 Normal / Flattening — late-cycle or neutral slowdown
• 🟠 Inverted / Steepening — policy reversal or soft landing attempt
• 🔴 Inverted / Flattening — hard contraction, credit stress, policy lag
🍋 The Lemon Label
At every bar, an anchored label floats directly on the spread line. It displays the active regime (in plain English) and the precise spread in percent (or basis points, depending on resolution). Colored lemon yellow, neither green nor red, the label is always legible — a design choice to de-emphasize bias and center the data .
🎨 Fill Zones
These bands offer spatial, persistent views of macro compression or inversion depth.
• Blue fill appears above the zero line in normal (non-inverted) conditions
• Red fill appears below the zero line during inversion
🧪 Sample Reading: 1W chart of TLT
OverUnder reveals a multi-year arc of structural inversion and regime transition. From mid-2021 through late 2023, the spread remains decisively inverted, signaling persistent flattening and credit stress as bond prices trended sharply lower. This prolonged inversion aligns with a high-volatility phase in TLT, marked by lower highs and an accelerating downtrend, confirming policy lag and macro tightening conditions.
As of early 2025, the spread has crossed back above the zero baseline into a “Normal / Steepening” regime (annotated at +0.56%), suggesting a macro inflection point. Price action remains subdued, but the shift in yield structure may foreshadow a change in trend context — particularly if follow-through in steepening persists.
🎭 Different Traders Respond Differently:
• Bond traders monitor slope change to anticipate policy pivots or recession signals.
• Equity traders use regime shifts to time rotations, from growth into defense, or from contraction into reflation.
• Currency traders interpret curve steepening as yield compression or divergence depending on region.
• Crypto traders treat inversion as a liquidity vacuum — and steepening as an early-phase risk unlock.
🛡️ Can It Compare Different Bond Markets?
Yes — with caveats. The indicator can be used to compare distinct sovereign yield instruments, for example:
• 🇫🇷FR10Y vs 🇩🇪DE10Y - France vs Germany
• 🇯🇵JP10Y vs 🇺🇸US10Y - BoJ vs Fed policy curves
However:
🙈 This no longer visualizes the domestic yield curve, but rather the differential between rate expectations across regions
🙉 The interpretation of “inversion” changes — it reflects spread compression across nations , not within a domestic yield structure
🙊 Color regimes should then be viewed as relative rate positioning , not absolute curve health
🙋🏻 Example: OverUnder compares French vs German 10Y yields
1. 🇫🇷 Change the long-duration ticker to FR10Y
2. 🇩🇪 Set the short-duration ticker to DE10Y
3. 🤔 Interpret the result as: “How much higher is France’s long-term borrowing cost vs Germany’s?”
You’ll see steepening when the spread rises (France decoupling), flattening when the spread compresses (convergence), and inversions when Germany yields rise above France’s — historically rare and meaningful.
🧐 Suggested Use
OverUnder is not a signal engine — it’s a context map. Its value comes from situating any trade idea within the prevailing yield regime. Use it before entries, not after them.
• On the 1W timeframe, OverUnder excels as a macro overlay. Yield regime shifts unfold over quarters, not days. Weekly structure smooths out rate volatility and reveals the true curvature of policy response and liquidity pressure. Use this view to orient your portfolio, define directional bias, or confirm long-duration trend turns in assets like TLT, SPX, or BTC.
• On the 1D timeframe, the indicator becomes tactically useful — especially when aligning breakout setups or trend continuations with steepening or flattening transitions. Daily views can also identify early-stage regime cracks that may not yet be visible on the weekly.
• Avoid sub-daily use unless you’re anchoring a thesis already built on higher timeframe structure. The yield curve is a macro construct — it doesn’t oscillate cleanly at intraday speeds. Shorter views may offer clarity during event-driven spikes (like FOMC reactions), but they do not replace weekly context.
Ultimately, OverUnder helps you decide: What kind of world am I trading in? Use it to confirm macro context, avoid fighting the curve, and lean into trades aligned with the broader pressure regime.
Spot - Fut spread v2"Spot - Fut Spread v2"
indicator is designed to track the difference between spot and futures prices on various exchanges. It automatically identifies the corresponding instrument (spot or futures) based on the current symbol and calculates the spread between the prices. This tool is useful for analyzing the delta between spot and futures markets, helping traders assess arbitrage opportunities and market sentiment.
Key Features:
- Automatic detection of spot and futures assets based on the current chart symbol.
- Flexible asset selection: the ability to manually choose the second asset if automatic selection is disabled.
- Spread calculation between futures and spot prices.
- Moving average of the spread for smoothing data and trend analysis.
Flexible visualization:
- Color indication of positive and negative spread.
- Adjustable background transparency.
- Text label displaying the current spread and moving average values.
- Error alerts in case of invalid data.
How the Indicator Works:
- Determines whether the current symbol is a futures contract.
- Based on this, selects the corresponding spot or futures symbol.
- Retrieves price data and calculates the spread between them.
- Displays the spread value and its moving average.
- The chart background color changes based on the spread value (positive or negative).
- In case of an error, the indicator provides an alert with an explanation.
Customization Parameters:
-Exchange selection: the ability to specify a particular exchange from the list.
- Automatic pair selection: enable or disable automatic selection of the second asset.
- Moving average period: user-defined.
- Colors for positive and negative spread values.
- Moving average color.
- Background transparency.
- Background coloring source (based on spread or its moving average).
Application:
The indicator is suitable for traders who analyze the difference between spot and futures prices, look for arbitrage opportunities, and assess the premium or discount of futures relative to the spot market.
Enhanced Spread MonitorThis indicator helps you monitor market spreads and identify potential trading opportunities by analyzing spread behavior, market liquidity, and volatility across multiple exchanges. It's particularly useful for crypto traders looking for market inefficiencies or arbitrage opportunities.
Visuals:
-Blue Line: The real-time spread, enhanced by market conditions
-Orange Line: A smoothed threshold that helps identify unusual spread levels
-Red Background: Appears when the spread exceeds the threshold, signaling a potential opportunity
Key Features:
Multi-Exchange Monitoring
-Can track up to 3 different exchanges/markets
-Option to view individual or aggregated spreads
-Useful for spotting arbitrage opportunities between venues
Enhanced Spread Detection
-Automatically amplifies the spread when liquidity is low
-Increases sensitivity during volatile periods
-Helps identify true trading costs beyond the simple bid-ask spread
How to Configure:
Symbol Settings
-Choose up to three markets to monitor
-Enable "Aggregate Multiple Symbols" to see a volume-weighted combined view
Market Impact Factor (Depth Settings)
-Default: 0.5
-Higher values (>1.0): More sensitive to low liquidity
-Lower values (<0.5): More conservative spread estimation
Volatility Settings
-Short-term Volatility: React to immediate market changes
-Long-term Volatility: Establish baseline market behavior
-Recommended: Keep long-term 3-5x larger than short-term
Threshold Settings
-Historical Lookback: How much history to consider (500 bars recommended)
-Threshold Smoothing: Stability of the threshold line (14 default)
-Std Dev Multiplier: How extreme spreads need to be for signals (2.0 default)
Trading Application:
-Watch for red background highlighting - these are potential opportunities
Consider trading when:
-Spread exceeds threshold significantly
-Multiple exchanges show similar patterns
-Market conditions suggest the spread is due to real inefficiencies
Be cautious when:
-High volatility is the main driver of spread increases
-Only one exchange shows unusual spread behavior
-Market depth is very low (might be hard to execute)
Risk Management:
-Large spreads during low liquidity might indicate difficult trading conditions
-Verify actual executable prices before trading
-Consider exchange fees and withdrawal costs for arbitrage
Candle Spread
Candle Spread is an indicator that helps traders measure the range of price movement within each candle over a specified time period. It calculates the range of the candle between the High and Low (High - Low) and displays it in a separate window below the chart as columns.
Key Features:
Colored Bars: The bars are colored based on the candle's direction:
Bullish Candle: Bars are Green.
Bearish Candle: Bars are Red.
Moving Average: The indicator includes a 30-period Simple Moving Average (SMA), which represents the overall average range of the candles.
Helps Identify Market Volatility: This indicator helps traders identify wide-range candles (signaling high volatility in the market), which could indicate a surge in momentum or potential trend reversals.
Bitcoin CME-Spot Z-Spread - Strategy [presentTrading]This time is a swing trading strategy! It measures the sentiment of the Bitcoin market through the spread of CME Bitcoin Futures and Bitfinex BTCUSD Spot prices. By applying Bollinger Bands to the spread, the strategy seeks to capture mean-reversion opportunities when prices deviate significantly from their historical norms
█ Introduction and How it is Different
The Bitcoin CME-Spot Bollinger Bands Strategy is designed to capture mean-reversion opportunities by exploiting the spread between CME Bitcoin Futures and Bitfinex BTCUSD Spot prices. The strategy uses Bollinger Bands to detect when the spread between these two correlated assets has deviated significantly from its historical norm, signaling potential overbought or oversold conditions.
What sets this strategy apart is its focus on spread trading between futures and spot markets rather than price-based indicators. By applying Bollinger Bands to the spread rather than individual prices, the strategy identifies price inefficiencies across markets, allowing traders to take advantage of the natural reversion to the mean that often occurs in these correlated assets.
BTCUSD 8hr Performance
█ Strategy, How It Works: Detailed Explanation
The strategy relies on Bollinger Bands to assess the volatility and relative deviation of the spread between CME Bitcoin Futures and Bitfinex BTCUSD Spot prices. Bollinger Bands consist of a moving average and two standard deviation bands, which help measure how much the spread deviates from its historical mean.
🔶 Spread Calculation:
The spread is calculated by subtracting the Bitfinex spot price from the CME Bitcoin futures price:
Spread = CME Price - Bitfinex Price
This spread represents the difference between the futures and spot markets, which may widen or narrow based on supply and demand dynamics in each market. By analyzing the spread, the strategy can detect when prices are too far apart (potentially overbought or oversold), indicating a trading opportunity.
🔶 Bollinger Bands Calculation:
The Bollinger Bands for the spread are calculated using a simple moving average (SMA) and the standard deviation of the spread over a defined period.
1. Moving Average (SMA):
The simple moving average of the spread (mu_S) over a specified period P is calculated as:
mu_S = (1/P) * sum(S_i from i=1 to P)
Where S_i represents the spread at time i, and P is the lookback period (default is 200 bars). The moving average provides a baseline for the normal spread behavior.
2. Standard Deviation:
The standard deviation (sigma_S) of the spread is calculated to measure the volatility of the spread:
sigma_S = sqrt((1/P) * sum((S_i - mu_S)^2 from i=1 to P))
3. Upper and Lower Bollinger Bands:
The upper and lower Bollinger Bands are derived by adding and subtracting a multiple of the standard deviation from the moving average. The number of standard deviations is determined by a user-defined parameter k (default is 2.618).
- Upper Band:
Upper Band = mu_S + (k * sigma_S)
- Lower Band:
Lower Band = mu_S - (k * sigma_S)
These bands provide a dynamic range within which the spread typically fluctuates. When the spread moves outside of these bands, it is considered overbought or oversold, potentially offering trading opportunities.
Local view
🔶 Entry Conditions:
- Long Entry: A long position is triggered when the spread crosses below the lower Bollinger Band, indicating that the spread has become oversold and is likely to revert upward.
Spread < Lower Band
- Short Entry: A short position is triggered when the spread crosses above the upper Bollinger Band, indicating that the spread has become overbought and is likely to revert downward.
Spread > Upper Band
🔶 Risk Management and Profit-Taking:
The strategy incorporates multi-step take profits to lock in gains as the trade moves in favor. The position is gradually reduced at predefined profit levels, reducing risk while allowing part of the trade to continue running if the price keeps moving favorably.
Additionally, the strategy uses a hold period exit mechanism. If the trade does not hit any of the take-profit levels within a certain number of bars, the position is closed automatically to avoid excessive exposure to market risks.
█ Trade Direction
The trade direction is based on deviations of the spread from its historical norm:
- Long Trade: The strategy enters a long position when the spread crosses below the lower Bollinger Band, signaling an oversold condition where the spread is expected to narrow.
- Short Trade: The strategy enters a short position when the spread crosses above the upper Bollinger Band, signaling an overbought condition where the spread is expected to widen.
These entries rely on the assumption of mean reversion, where extreme deviations from the average spread are likely to revert over time.
█ Usage
The Bitcoin CME-Spot Bollinger Bands Strategy is ideal for traders looking to capitalize on price inefficiencies between Bitcoin futures and spot markets. It’s especially useful in volatile markets where large deviations between futures and spot prices occur.
- Market Conditions: This strategy is most effective in correlated markets, like CME futures and spot Bitcoin. Traders can adjust the Bollinger Bands period and standard deviation multiplier to suit different volatility regimes.
- Backtesting: Before deployment, backtesting the strategy across different market conditions and timeframes is recommended to ensure robustness. Adjust the take-profit steps and hold periods to reflect the trader’s risk tolerance and market behavior.
█ Default Settings
The default settings provide a balanced approach to spread trading using Bollinger Bands but can be adjusted depending on market conditions or personal trading preferences.
🔶 Bollinger Bands Period (200 bars):
This defines the number of bars used to calculate the moving average and standard deviation for the Bollinger Bands. A longer period smooths out short-term fluctuations and focuses on larger, more significant trends. Adjusting the period affects the responsiveness of the strategy:
- Shorter periods (e.g., 100 bars): Makes the strategy more reactive to short-term market fluctuations, potentially generating more signals but increasing the risk of false positives.
- Longer periods (e.g., 300 bars): Focuses on longer-term trends, reducing the frequency of trades and focusing only on significant deviations.
🔶 Standard Deviation Multiplier (2.618):
The multiplier controls how wide the Bollinger Bands are around the moving average. By default, the bands are set at 2.618 standard deviations away from the average, ensuring that only significant deviations trigger trades.
- Higher multipliers (e.g., 3.0): Require a more extreme deviation to trigger trades, reducing trade frequency but potentially increasing the accuracy of signals.
- Lower multipliers (e.g., 2.0): Make the bands narrower, increasing the number of trade signals but potentially decreasing their reliability.
🔶 Take-Profit Levels:
The strategy has four take-profit levels to gradually lock in profits:
- Level 1 (3%): 25% of the position is closed at a 3% profit.
- Level 2 (8%): 20% of the position is closed at an 8% profit.
- Level 3 (14%): 15% of the position is closed at a 14% profit.
- Level 4 (21%): 10% of the position is closed at a 21% profit.
Adjusting these take-profit levels affects how quickly profits are realized:
- Lower take-profit levels: Capture gains more quickly, reducing risk but potentially cutting off larger profits.
- Higher take-profit levels: Let trades run longer, aiming for bigger gains but increasing the risk of price reversals before profits are locked in.
🔶 Hold Days (20 bars):
The strategy automatically closes the position after 20 bars if none of the take-profit levels are hit. This feature prevents trades from being held indefinitely, especially if market conditions are stagnant. Adjusting this:
- Shorter hold periods: Reduce the duration of exposure, minimizing risks from market changes but potentially closing trades too early.
- Longer hold periods: Allow trades to stay open longer, increasing the chance for mean reversion but also increasing exposure to unfavorable market conditions.
By understanding how these default settings affect the strategy’s performance, traders can optimize the Bitcoin CME-Spot Bollinger Bands Strategy to their preferences, adapting it to different market environments and risk tolerances.
Yield Curve InversionThe Yield Curve Inversion indicator is a tool designed to help traders and analysts visualize and interpret the dynamics between the US 10-year and 2-year Treasury yields. This indicator is particularly useful for identifying yield curve inversions, often seen as a precursor to economic recessions.
Features and Interpretations
Display Modes: Choose between "Spread Mode" to visualize the yield spread indicating normal (green) or inverted (red) curves, or "Both Yields Mode" to view both yields.
Yield Spread: A plotted difference between 10-year and 2-year yields, with a zero line marking inversion. A negative spread suggests potential economic downturns.
Color Coding: Green for a normal yield curve (10Y > 2Y) and red for an inverted curve (2Y > 10Y).
Legend: Provides quick reference to yield curve states for easier interpretation.
This indicator is for educational and informational purposes only. It should not be considered financial advice or a recommendation to buy or sell any financial instruments. Users should conduct their own research and consult with a financial advisor before making investment decisions. The creator of this indicator is not responsible for any financial losses incurred through its use.
Yield Spread (10Y - 2Y)Yield Spread
The green line shows the difference between the 10-Year and 2-Year yields.
Positive Spread: When the green line is above zero, the 10-Year yield is higher than the 2-Year yield. This is normal and indicates an upward-sloping (normal) yield curve, which typically suggests a healthy economy with expectations of future growth.
Flattening Curve: If the green line approaches zero, the yield curve is flattening, indicating that investors are uncertain about future economic growth. They are demanding similar yields for both short and long-term bonds.
Negative Spread (Inverted Yield Curve): If the green line goes below zero, this means the 2-Year yield is higher than the 10-Year yield, creating an inverted yield curve. An inverted curve is often seen as a predictor of a recession, as it indicates that investors expect weaker economic conditions in the future.
Short Explanation of the Chart layout:
This chart tracks U.S. Treasury yields for 2-year (blue), 10-year (white), and 30-year (orange) bonds, along with the yield spread (green) between the 10-year and 2-year bonds. A positive spread suggests a normal yield curve and economic growth, while a negative spread (inversion) often signals a potential recession.
Auto Volume Spread Analysis (VSA) [TANHEF]Auto Volume Spread Analysis (visible volume and spread bars auto-scaled): Understanding Market Intentions through the Interpretation of Volume and Price Movements.
All the sections below contain the same descriptions as my other indicator "Volume Spread Analysis" with the exception of 'Auto Scaling'.
█ Auto-Scaling
This indicator auto-scales spread bars to match the visible volume bars, unlike the previous "Volume Spread Analysis " version which limited the number of visible spread bars to a fixed count. The auto-scaling feature allows for easier navigation through historical data, enabling both more historical spread bars to be viewed and more historical VSA pattern labels being displayed without requiring using the bar replay tool. Please note that this indicator’s auto-scaling feature recalculates the visible bars on the chart, causing the indicator to reload whenever the chart is moved.
Auto-scaled spread bars have two display options (set via 'Spread Bars Method' setting):
Lines: a bar lookback limit of 500 bars.
Polylines: no bar lookback limit as only plotted on visible bars on chart, which uses multiple polylines are used.
█ Simple Explanation:
The Volume Spread Analysis (VSA) indicator is a comprehensive tool that helps traders identify key market patterns and trends based on volume and spread data. This indicator highlights significant VSA patterns and provides insights into market behavior through color-coded volume/spread bars and identification of bars indicating strength, weakness, and neutrality between buyers and sellers. It also includes powerful volume and spread forecasting capabilities.
█ Laws of Volume Spread Analysis (VSA):
The origin of VSA begins with Richard Wyckoff, a pivotal figure in its development. Wyckoff made significant contributions to trading theory, including the formulation of three basic laws:
The Law of Supply and Demand: This fundamental law states that supply and demand balance each other over time. High demand and low supply lead to rising prices until demand falls to a level where supply can meet it. Conversely, low demand and high supply cause prices to fall until demand increases enough to absorb the excess supply.
The Law of Cause and Effect: This law assumes that a 'cause' will result in an 'effect' proportional to the 'cause'. A strong 'cause' will lead to a strong trend (effect), while a weak 'cause' will lead to a weak trend.
The Law of Effort vs. Result: This law asserts that the result should reflect the effort exerted. In trading terms, a large volume should result in a significant price move (spread). If the spread is small, the volume should also be small. Any deviation from this pattern is considered an anomaly.
█ Volume and Spread Analysis Bars:
Display: Volume and spread bars that consist of color coded levels, with the spread bars scaled to match the volume bars. A displayable table (Legend) of bar colors and levels can give context and clarify to each volume/spread bar.
Calculation: Levels are calculated using multipliers applied to moving averages to represent key levels based on historical data: low, normal, high, ultra. This method smooths out short-term fluctuations and focuses on longer-term trends.
Low Level: Indicates reduced volatility and market interest.
Normal Level: Reflects typical market activity and volatility.
High Level: Indicates increased activity and volatility.
Ultra Level: Identifies extreme levels of activity and volatility.
This illustrates the appearance of Volume and Spread bars when scaled and plotted together:
█ Forecasting Capabilities:
Display: Forecasted volume and spread levels using predictive models.
Calculation: Volume and Spread prediction calculations differ as volume is linear and spread is non-linear.
Volume Forecast (Linear Forecasting): Predicts future volume based on current volume rate and bar time till close.
Spread Forecast (Non-Linear Dynamic Forecasting): Predicts future spread using a dynamic multiplier, less near midpoint (consolidation) and more near low or high (trending), reflecting non-linear expansion.
Moving Averages: In forecasting, moving averages utilize forecasted levels instead of actual levels to ensure the correct level is forecasted (low, normal, high, or ultra).
The following compares forecasted volume with actual resulting volume, highlighting the power of early identifying increased volume through forecasted levels:
█ VSA Patterns:
Criteria and descriptions for each VSA pattern are available as tooltips beside them within the indicator’s settings. These tooltips provide explanations of potential developments based on the volume and spread data.
Signs of Strength (🟢): Patterns indicating strong buying pressure and potential market upturns.
Down Thrust
Selling Climax
No Effort ➤ Bearish Result
Bearish Effort ➤ No Result
Inverse Down Thrust
Failed Selling Climax
Bull Outside Reversal
End of Falling Market (Bag Holder)
Pseudo Down Thrust
No Supply
Signs of Weakness (🔴): Patterns indicating strong selling pressure and potential market downturns.
Up Thrust
Buying Climax
No Effort ➤ Bullish Result
Bullish Effort ➤ No Result
Inverse Up Thrust
Failed Buying Climax
Bear Outside Reversal
End of Rising Market (Bag Seller)
Pseudo Up Thrust
No Demand
Neutral Patterns (🔵): Patterns indicating market indecision and potential for continuation or reversal.
Quiet Doji
Balanced Doji
Strong Doji
Quiet Spinning Top
Balanced Spinning Top
Strong Spinning Top
Quiet High Wave
Balanced High Wave
Strong High Wave
Consolidation
Bar Patterns (🟡): Common candlestick patterns that offer insights into market sentiment. These are required in some VSA patterns and can also be displayed independently.
Bull Pin Bar
Bear Pin Bar
Doji
Spinning Top
High Wave
Consolidation
This demonstrates the acronym and descriptive options for displaying bar patterns, with the ability to hover over text to reveal the descriptive text along with what type of pattern:
█ Alerts:
VSA Pattern Alerts: Notifications for identified VSA patterns at bar close.
Volume and Spread Alerts: Alerts for confirmed and forecasted volume/spread levels (Low, High, Ultra).
Forecasted Volume and Spread Alerts: Alerts for forecasted volume/spread levels (High, Ultra) include a minimum percent time elapsed input to reduce false early signals by ensuring sufficient bar time has passed.
█ Inputs and Settings:
Indicator Bar Color: Select color schemes for bars (Normal, Detail, Levels).
Indicator Moving Average Color: Select schemes for bars (Fill, Lines, None).
Price Bar Colors: Options to color price bars based on VSA patterns and volume levels.
Legend: Display a table of bar colors and levels for context and clarity of volume/spread bars.
Forecast: Configure forecast display and prediction details for volume and spread.
Average Multipliers: Define multipliers for different levels (Low, High, Ultra) to refine the analysis.
Moving Average: Set volume and spread moving average settings.
VSA: Select the VSA patterns to be calculated and displayed (Strength, Weakness, Neutral).
Bar Patterns: Criteria for bar patterns used in VSA (Doji, Bull Pin Bar, Bear Pin Bar, Spinning Top, Consolidation, High Wave).
Colors: Set exact colors used for indicator bars, indicator moving averages, and price bars.
More Display Options: Specify how VSA pattern text is displayed (Acronym, Descriptive), positioning, and sizes.
Alerts: Configure alerts for VSA patterns, volume, and spread levels, including forecasted levels.
█ Usage:
The Volume Spread Analysis indicator is a helpful tool for leveraging volume spread analysis to make informed trading decisions. It offers comprehensive visual and textual cues on the chart, making it easier to identify market conditions, potential reversals, and continuations. Whether analyzing historical data or forecasting future trends, this indicator provides insights into the underlying factors driving market movements.
Bitcoin Futures vs. Spot Tri-Frame - Strategy [presentTrading]Prove idea with a backtest is always true for trading.
I developed and open-sourced it as an educational material for crypto traders to understand that the futures and spot spread may be effective but not be as effective as they might think. It serves as an indicator of sentiment rather than a reliable predictor of market trends over certain periods. It is better suited for specific trading environments, which require further research.
█ Introduction and How it is Different
The "Bitcoin Futures vs. Spot Tri-Frame Strategy" utilizes three different timeframes to calculate the Z-Score of the spread between BTC futures and spot prices on Binance and OKX exchanges. The strategy executes long or short trades based on composite Z-Score conditions across the three timeframes.
The spread refers to the difference in price between BTC futures and BTC spot prices, calculated by taking a weighted average of futures prices from multiple exchanges (Binance and OKX) and subtracting a weighted average of spot prices from the same exchanges.
BTCUSD 1D L/S Performance
█ Strategy, How It Works: Detailed Explanation
🔶 Calculation of the Spread
The spread is the difference in price between BTC futures and BTC spot prices. The strategy calculates the spread by taking a weighted average of futures prices from multiple exchanges (Binance and OKX) and subtracting a weighted average of spot prices from the same exchanges. This spread serves as the primary metric for identifying trading opportunities.
Spread = Weighted Average Futures Price - Weighted Average Spot Price
🔶 Z-Score Calculation
The Z-Score measures how many standard deviations the current spread is from its historical mean. This is calculated for each timeframe as follows:
Spread Mean_tf = SMA(Spread_tf, longTermSMA)
Spread StdDev_tf = STDEV(Spread_tf, longTermSMA)
Z-Score_tf = (Spread_tf - Spread Mean_tf) / Spread StdDev_tf
Local performance
🔶 Composite Entry Conditions
The strategy triggers long and short entries based on composite Z-Score conditions across all three timeframes:
- Long Condition: All three Z-Scores must be greater than the long entry threshold.
Long Condition = (Z-Score_tf1 > zScoreLongEntryThreshold) and (Z-Score_tf2 > zScoreLongEntryThreshold) and (Z-Score_tf3 > zScoreLongEntryThreshold)
- Short Condition: All three Z-Scores must be less than the short entry threshold.
Short Condition = (Z-Score_tf1 < zScoreShortEntryThreshold) and (Z-Score_tf2 < zScoreShortEntryThreshold) and (Z-Score_tf3 < zScoreShortEntryThreshold)
█ Trade Direction
The strategy allows the user to specify the trading direction:
- Long: Only long trades are executed.
- Short: Only short trades are executed.
- Both: Both long and short trades are executed based on the Z-Score conditions.
█ Usage
The strategy can be applied to BTC or Crypto trading on major exchanges like Binance and OKX. By leveraging discrepancies between futures and spot prices, traders can exploit market inefficiencies. This strategy is suitable for traders who prefer a statistical approach and want to diversify their timeframes to validate signals.
█ Default Settings
- Input TF 1 (60 minutes): Sets the first timeframe for Z-Score calculation.
- Input TF 2 (120 minutes): Sets the second timeframe for Z-Score calculation.
- Input TF 3 (180 minutes): Sets the third timeframe for Z-Score calculation.
- Long Entry Z-Score Threshold (3): Defines the threshold above which a long trade is triggered.
- Short Entry Z-Score Threshold (-3): Defines the threshold below which a short trade is triggered.
- Long-Term SMA Period (100): The period used to calculate the simple moving average for the spread.
- Use Hold Days (true): Enables holding trades for a specified number of days.
- Hold Days (5): Number of days to hold the trade before exiting.
- TPSL Condition (None): Defines the conditions for taking profit and stop loss.
- Take Profit (%) (30.0): The percentage at which the trade will take profit.
- Stop Loss (%) (20.0): The percentage at which the trade will stop loss.
By fine-tuning these settings, traders can optimize the strategy to suit their risk tolerance and trading style, enhancing overall performance.
Volume Spread Analysis [TANHEF]Volume Spread Analysis: Understanding Market Intentions through the Interpretation of Volume and Price Movements.
█ Simple Explanation:
The Volume Spread Analysis (VSA) indicator is a comprehensive tool that helps traders identify key market patterns and trends based on volume and spread data. This indicator highlights significant VSA patterns and provides insights into market behavior through color-coded volume/spread bars and identification of bars indicating strength, weakness, and neutrality between buyers and sellers. It also includes powerful volume and spread forecasting capabilities.
█ Laws of Volume Spread Analysis (VSA):
The origin of VSA begins with Richard Wyckoff, a pivotal figure in its development. Wyckoff made significant contributions to trading theory, including the formulation of three basic laws:
The Law of Supply and Demand: This fundamental law states that supply and demand balance each other over time. High demand and low supply lead to rising prices until demand falls to a level where supply can meet it. Conversely, low demand and high supply cause prices to fall until demand increases enough to absorb the excess supply.
The Law of Cause and Effect: This law assumes that a 'cause' will result in an 'effect' proportional to the 'cause'. A strong 'cause' will lead to a strong trend (effect), while a weak 'cause' will lead to a weak trend.
The Law of Effort vs. Result: This law asserts that the result should reflect the effort exerted. In trading terms, a large volume should result in a significant price move (spread). If the spread is small, the volume should also be small. Any deviation from this pattern is considered an anomaly.
█ Volume and Spread Analysis Bars:
Display: Volume and/or spread bars that consist of color coded levels. If both of these are displayed, the number of spread bars can be limited for visual appeal and understanding, with the spread bars scaled to match the volume bars. While automatic calculation of the number of visual bars for auto scaling is possible, it is avoided to prevent the indicator from reloading whenever the number of visual price bars on the chart is adjusted, ensuring uninterrupted analysis. A displayable table (Legend) of bar colors and levels can give context and clarify to each volume/spread bar.
Calculation: Levels are calculated using multipliers applied to moving averages to represent key levels based on historical data: low, normal, high, ultra. This method smooths out short-term fluctuations and focuses on longer-term trends.
Low Level: Indicates reduced volatility and market interest.
Normal Level: Reflects typical market activity and volatility.
High Level: Indicates increased activity and volatility.
Ultra Level: Identifies extreme levels of activity and volatility.
This illustrates the appearance of Volume and Spread bars when scaled and plotted together:
█ Forecasting Capabilities:
Display: Forecasted volume and spread levels using predictive models.
Calculation: Volume and Spread prediction calculations differ as volume is linear and spread is non-linear.
Volume Forecast (Linear Forecasting): Predicts future volume based on current volume rate and bar time till close.
Spread Forecast (Non-Linear Dynamic Forecasting): Predicts future spread using a dynamic multiplier, less near midpoint (consolidation) and more near low or high (trending), reflecting non-linear expansion.
Moving Averages: In forecasting, moving averages utilize forecasted levels instead of actual levels to ensure the correct level is forecasted (low, normal, high, or ultra).
The following compares forecasted volume with actual resulting volume, highlighting the power of early identifying increased volume through forecasted levels:
█ VSA Patterns:
Criteria and descriptions for each VSA pattern are available as tooltips beside them within the indicator’s settings. These tooltips provide explanations of potential developments based on the volume and spread data.
Signs of Strength (🟢): Patterns indicating strong buying pressure and potential market upturns.
Down Thrust
Selling Climax
No Effort → Bearish Result
Bearish Effort → No Result
Inverse Down Thrust
Failed Selling Climax
Bull Outside Reversal
End of Falling Market (Bag Holder)
Pseudo Down Thrust
No Supply
Signs of Weakness (🔴): Patterns indicating strong selling pressure and potential market downturns.
Up Thrust
Buying Climax
No Effort → Bullish Result
Bullish Effort → No Result
Inverse Up Thrust
Failed Buying Climax
Bear Outside Reversal
End of Rising Market (Bag Seller)
Pseudo Up Thrust
No Demand
Neutral Patterns (🔵): Patterns indicating market indecision and potential for continuation or reversal.
Quiet Doji
Balanced Doji
Strong Doji
Quiet Spinning Top
Balanced Spinning Top
Strong Spinning Top
Quiet High Wave
Balanced High Wave
Strong High Wave
Consolidation
Bar Patterns (🟡): Common candlestick patterns that offer insights into market sentiment. These are required in some VSA patterns and can also be displayed independently.
Bull Pin Bar
Bear Pin Bar
Doji
Spinning Top
High Wave
Consolidation
This demonstrates the acronym and descriptive options for displaying bar patterns, with the ability to hover over text to reveal the descriptive text along with what type of pattern:
█ Alerts:
VSA Pattern Alerts: Notifications for identified VSA patterns at bar close.
Volume and Spread Alerts: Alerts for confirmed and forecasted volume/spread levels (Low, High, Ultra).
Forecasted Volume and Spread Alerts: Alerts for forecasted volume/spread levels (High, Ultra) include a minimum percent time elapsed input to reduce false early signals by ensuring sufficient bar time has passed.
█ Inputs and Settings:
Display Volume and/or Spread: Choose between displaying volume bars, spread bars, or both with different lookback periods.
Indicator Bar Color: Select color schemes for bars (Normal, Detail, Levels).
Indicator Moving Average Color: Select schemes for bars (Fill, Lines, None).
Price Bar Colors: Options to color price bars based on VSA patterns and volume levels.
Legend: Display a table of bar colors and levels for context and clarity of volume/spread bars.
Forecast: Configure forecast display and prediction details for volume and spread.
Average Multipliers: Define multipliers for different levels (Low, High, Ultra) to refine the analysis.
Moving Average: Set volume and spread moving average settings.
VSA: Select the VSA patterns to be calculated and displayed (Strength, Weakness, Neutral).
Bar Patterns: Criteria for bar patterns used in VSA (Doji, Bull Pin Bar, Bear Pin Bar, Spinning Top, Consolidation, High Wave).
Colors: Set exact colors used for indicator bars, indicator moving averages, and price bars.
More Display Options: Specify how VSA pattern text is displayed (Acronym, Descriptive), positioning, and sizes.
Alerts: Configure alerts for VSA patterns, volume, and spread levels, including forecasted levels.
█ Usage:
The Volume Spread Analysis indicator is a helpful tool for leveraging volume spread analysis to make informed trading decisions. It offers comprehensive visual and textual cues on the chart, making it easier to identify market conditions, potential reversals, and continuations. Whether analyzing historical data or forecasting future trends, this indicator provides insights into the underlying factors driving market movements.
VolumeSpreadAnalysisLibrary "VolumeSpreadAnalysis"
A library for Volume Spread Analysis (VSA).
spread(_barIndex)
Calculates the spread of a bar.
Parameters:
_barIndex (int) : (int) The index of the bar.
Returns: (float) The spread of the bar.
volume(_barIndex)
Retrieves the volume of a bar.
Parameters:
_barIndex (int) : (int) The index of the bar.
Returns: (float) The volume of the bar.
body(_barIndex)
Calculates the body of a bar.
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (float) The body size of the bar.
wickUpper(_barIndex)
Calculates the upper wick of a bar (upper shadow).
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (float) The upper wick size of the bar.
wickLower(_barIndex)
Calculates the lower wick of a bar (lower shadow).
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (float) The lower wick size of the bar.
calcForecastedSMA(_source, _length, _forecastedLevel)
Calculates the forecasted Simple Moving Average (SMA).
Parameters:
_source (float) : (series float) Source data for calculation.
_length (simple int) : (int) The length of the SMA.
_forecastedLevel (float) : (float) The forecasted level to include in the calculation.
Returns: (float) The forecasted SMA value.
calcForecastedEMA(_source, _length, _forecastedLevel)
Calculates the forecasted Exponential Moving Average (EMA).
Parameters:
_source (float) : (series float) Source data for calculation.
_length (simple int) : (int) The length of the EMA.
_forecastedLevel (float) : (float) The forecasted level to include in the calculation.
Returns: (float) The forecasted EMA value.
calcForecastedRMA(_source, _length, _forecastedLevel)
Calculates the forecasted Relative Moving Average (RMA).
Parameters:
_source (float) : (series float) Source data for calculation.
_length (simple int) : (int) The length of the RMA.
_forecastedLevel (float) : (float) The forecasted level to include in the calculation.
Returns: (float) The forecasted RMA value.
calcForecastedWMA(_source, _length, _forecastedLevel)
Calculates the forecasted Weighted Moving Average (WMA).
Parameters:
_source (float) : (series float) Source data for calculation.
_length (simple int) : (int) The length of the WMA.
_forecastedLevel (float) : (float) The forecasted level to include in the calculation.
Returns: (float) The forecasted WMA value.
calcElapsedTimePercent()
Calculates the elapsed time percent of the current bar.
Returns: (float) The elapsed time percent.
calcForecastedSpread(multiplierAtMidpoints, multiplierAtPeaks)
Calculates the forecasted spread using elapsed time and dynamic multipliers, handling spread's non-linear nature.
Parameters:
multiplierAtMidpoints (float) : (float) The multiplier value at midpoints.
multiplierAtPeaks (float) : (float) The multiplier value at peaks.
Returns: (float) The forecasted spread value.
calcForecastedVolume()
Calculates the forecasted volume using elapsed time, satisfying volume's linear nature.
Returns: (float) The forecasted volume value.
calcForecastedMA(_source, _length, _forecastedSource, _type)
Calculates the forecasted Moving Average (MA) based on the specified type.
Parameters:
_source (float) : (series float) Source data for calculation.
_length (simple int) : (int) The length of the MA.
_forecastedSource (float) : (float) The forecasted level to include in the calculation.
_type (simple string) : (string) The type of the MA ("SMA", "EMA", "SMMA (RMA)", "WMA").
Returns: (float) The forecasted MA value.
calcMA(_source, _length, _type)
Calculates the Moving Average (MA) based on the specified type.
Parameters:
_source (float) : (series float) Source data for calculation.
_length (simple int) : (int) The length of the MA.
_type (simple string) : (string) The type of the MA ("SMA", "EMA", "SMMA (RMA)", "WMA").
Returns: (float) The MA value.
bullBar(_barIndex)
Determines if the bar is bullish.
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (bool) True if the bar is bullish, otherwise false.
bearBar(_barIndex)
Determines if the bar is bearish.
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (bool) True if the bar is bearish, otherwise false.
breakout(_barIndex)
Determines if there is a breakout above the previous bar.
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (bool) True if there is a breakout, otherwise false.
breakdown(_barIndex)
Determines if there is a breakdown below the previous bar.
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (bool) True if there is a breakdown, otherwise false.
rejectionWickUpper(_rejectionWick)
Determines if the upper wick is a rejection wick.
Parameters:
_rejectionWick (simple float) : (float) The rejection wick percentage.
Returns: (bool) True if the upper wick is a rejection wick, otherwise false.
rejectionWickLower(_rejectionWick)
Determines if the lower wick is a rejection wick.
Parameters:
_rejectionWick (simple float) : (float) The rejection wick percentage.
Returns: (bool) True if the lower wick is a rejection wick, otherwise false.
setupDataVolume(_data, _mult_Low, _mult_High, _mult_Ultra, _maLengthVolume, _maTypeVolume)
Sets up data for volume levels.
Parameters:
_data (map) : (map) The map to store the levels.
_mult_Low (simple float) : (float) The multiplier for low level.
_mult_High (simple float) : (float) The multiplier for high level.
_mult_Ultra (simple float) : (float) The multiplier for ultra level.
_maLengthVolume (simple int) : (int) The length for MA.
_maTypeVolume (simple string) : (string) The type for MA.
Returns: (void) Nothing.
setupDataSpread(_data, _mult_Low, _mult_High, _mult_Ultra, _maLengthSpread, _maTypeSpread)
Sets up data for spread levels.
Parameters:
_data (map) : (map) The map to store the levels.
_mult_Low (simple float) : (float) The multiplier for low level.
_mult_High (simple float) : (float) The multiplier for high level.
_mult_Ultra (simple float) : (float) The multiplier for ultra level.
_maLengthSpread (simple int) : (int) The length for MA.
_maTypeSpread (simple string) : (string) The type for MA.
Returns: (void) Nothing.
setupDataForecastVolume(_dataForecast, _mult_Low, _mult_High, _mult_Ultra, _maLengthVolume, _predictedLevelVolume, _maTypeVolume)
Sets up data for volume and spread levels for forecast.
Parameters:
_dataForecast (map)
_mult_Low (simple float) : (float) The multiplier for low level.
_mult_High (simple float) : (float) The multiplier for high level.
_mult_Ultra (simple float) : (float) The multiplier for ultra level.
_maLengthVolume (simple int) : (int) The length for MA.
_predictedLevelVolume (float) : (float) The predicted level for MA.
_maTypeVolume (simple string) : (string) The type for MA.
Returns: (void) Nothing.
setupDataForecastSpread(_dataForecast, _mult_Low, _mult_High, _mult_Ultra, _maLengthSpread, _predictedLevelSpread, _maTypeSpread)
Sets up data for spread levels for forecast.
Parameters:
_dataForecast (map)
_mult_Low (simple float) : (float) The multiplier for low level.
_mult_High (simple float) : (float) The multiplier for high level.
_mult_Ultra (simple float) : (float) The multiplier for ultra level.
_maLengthSpread (simple int) : (int) The length for MA.
_predictedLevelSpread (float) : (float) The predicted level for MA.
_maTypeSpread (simple string) : (string) The type for MA.
Returns: (void) Nothing.
isVolumeLow(_data, _barIndex)
Determines if the volume is low.
Parameters:
_data (map) : (map) The data map with volume levels.
_barIndex (int)
Returns: (bool) True if the volume is low, otherwise false.
isVolumeNormal(_data, _barIndex)
Determines if the volume is normal.
Parameters:
_data (map) : (map) The data map with volume levels.
_barIndex (int)
Returns: (bool) True if the volume is normal, otherwise false.
isVolumeHigh(_data, _barIndex)
Determines if the volume is high.
Parameters:
_data (map) : (map) The data map with volume levels.
_barIndex (int)
Returns: (bool) True if the volume is high, otherwise false.
isVolumeUltra(_data, _barIndex)
Determines if the volume is ultra.
Parameters:
_data (map) : (map) The data map with volume levels.
_barIndex (int)
Returns: (bool) True if the volume is ultra, otherwise false.
isSpreadLow(_data, _barIndex)
Determines if the spread is low.
Parameters:
_data (map) : (map) The data map with spread levels.
_barIndex (int)
Returns: (bool) True if the spread is low, otherwise false.
isSpreadNormal(_data, _barIndex)
Determines if the spread is normal.
Parameters:
_data (map) : (map) The data map with spread levels.
_barIndex (int)
Returns: (bool) True if the spread is normal, otherwise false.
isSpreadHigh(_data, _barIndex)
Determines if the spread is high.
Parameters:
_data (map) : (map) The data map with spread levels.
_barIndex (int)
Returns: (bool) True if the spread is high, otherwise false.
isSpreadUltra(_data, _barIndex)
Determines if the spread is ultra.
Parameters:
_data (map) : (map) The data map with spread levels.
_barIndex (int)
Returns: (bool) True if the spread is ultra, otherwise false.
isVolumeText(_data)
Determines text string representing the volume area level.
Parameters:
_data (map) : (map) The data map with volume levels.
Returns: (string) Text string of Low, Normal, High, or Ultra.
isSpreadText(_data)
Determines text string representing the spread area level.
Parameters:
_data (map) : (map) The data map with spread levels.
Returns: (string) Text string of Low, Normal, High, or Ultra.
calcBarColor(_value, _level)
Calculates the color based level.
Parameters:
_value (float) : (float) The value to check.
_level (float) : (float) The value level for comparison.
Returns: (color) The color for the bar.
bullPinBar(_maxBodyPercent, _minWickPercent)
Determines if the bar is a bull pin bar.
Parameters:
_maxBodyPercent (simple float) : (float) The maximum body percentage.
_minWickPercent (simple float) : (float) The minimum wick percentage.
Returns: (bool) True if the bar is a bull pin bar, otherwise false.
bearPinBar(_maxBodyPercent, _minWickPercent)
Determines if the bar is a bear pin bar.
Parameters:
_maxBodyPercent (simple float) : (float) The maximum body percentage.
_minWickPercent (simple float) : (float) The minimum wick percentage.
Returns: (bool) True if the bar is a bear pin bar, otherwise false.
dojiBar(_maxBodyPercent)
Determines if the bar is a doji.
Parameters:
_maxBodyPercent (simple float) : (float) The maximum body percentage.
Returns: (bool) True if the bar is a doji, otherwise false.
spinningTopBar(_minWicksPercent, _emaLength)
Determines if the bar is a spinning top.
Parameters:
_minWicksPercent (simple float) : (float) The minimum wicks percentage.
_emaLength (simple int) : (int) The length for EMA calculation.
Returns: (bool) True if the bar is a spinning top, otherwise false.
highWaveBar(_minBodyPercent, _minWickPercent, _bars)
Determines if the bar is a high wave bar.
Parameters:
_minBodyPercent (simple float) : (float) The minimum body percentage.
_minWickPercent (simple float) : (float) The minimum wick percentage.
_bars (simple int) : (int) The number of bars for comparison.
Returns: (bool) True if the bar is a high wave bar, otherwise false.
consolidationBar(_data, _spread, _bars)
Determines if the bars are in consolidation.
Parameters:
_data (map) : (map) The data map with spread levels.
_spread (simple float) : (float) The spread percentage for comparison.
_bars (simple int) : (int) The number of bars for comparison.
Returns: (bool) True if the bars are in consolidation, otherwise false.
S_DownThrust(_data, _bullPinBarMaxBody, _bullPinBarMinWick)
Determines if there is a sign of strength (DownThrust).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_bullPinBarMaxBody (simple float) : (float) The maximum body percentage for bull pin bar.
_bullPinBarMinWick (simple float) : (float) The minimum wick percentage for bull pin bar.
Returns: (bool) True if there is a sign of strength (DownThrust), otherwise false.
S_SellingClimax(_data, _rejectionWick)
Determines if there is a sign of strength (Selling Climax).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_rejectionWick (simple float) : (float) The rejection wick percentage.
Returns: (bool) True if there is a sign of strength (Selling Climax), otherwise false.
S_NoEffortBearishResult()
Determines if there is a sign of strength (No Effort Bearish Result).
Returns: (bool) True if there is a sign of strength (No Effort Bearish Result), otherwise false.
S_BearishEffortNoResult()
Determines if there is a sign of strength (Bearish Effort No Result).
Returns: (bool) True if there is a sign of strength (Bearish Effort No Result), otherwise false.
S_InverseDownThrust(_data, _bearPinBarMaxBody, _bearPinBarMinWick)
Determines if there is a sign of strength (Inverse DownThrust).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_bearPinBarMaxBody (simple float) : (float) The maximum body percentage for bear pin bar.
_bearPinBarMinWick (simple float) : (float) The minimum wick percentage for bear pin bar.
Returns: (bool) True if there is a sign of strength (Inverse DownThrust), otherwise false.
S_FailedSellingClimax()
Determines if there is a sign of strength (Failed Selling Climax).
Returns: (bool) True if there is a sign of strength (Failed Selling Climax), otherwise false.
S_BullOutsideReversal(_data)
Determines if there is a sign of strength (Bull Outside Reversal).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
Returns: (bool) True if there is a sign of strength (Bull Outside Reversal), otherwise false.
S_EndOfFallingMarket(_data)
Determines if there is a sign of strength (End of Falling Market).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
Returns: (bool) True if there is a sign of strength (End of Falling Market), otherwise false.
S_PseudoDownThrust(_bullPinBarMaxBody, _bullPinBarMinWick)
Determines if there is a sign of strength (Pseudo DownThrust).
Parameters:
_bullPinBarMaxBody (simple float) : (float) The maximum body percentage for bull pin bar.
_bullPinBarMinWick (simple float) : (float) The minimum wick percentage for bull pin bar.
Returns: (bool) True if there is a sign of strength (Pseudo DownThrust), otherwise false.
S_NoSupply(_bullPinBarMaxBody, _bullPinBarMinWick)
Determines if there is a sign of strength (No Supply).
Parameters:
_bullPinBarMaxBody (simple float) : (float) The maximum body percentage for bull pin bar.
_bullPinBarMinWick (simple float) : (float) The minimum wick percentage for bull pin bar.
Returns: (bool) True if there is a sign of strength (No Supply), otherwise false.
W_UpThrust(_data, _bearPinBarMaxBody, _bearPinBarMinWick)
Determines if there is a sign of weakness (UpThrust).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_bearPinBarMaxBody (simple float) : (float) The maximum body percentage for bear pin bar.
_bearPinBarMinWick (simple float) : (float) The minimum wick percentage for bear pin bar.
Returns: (bool) True if there is a sign of weakness (UpThrust), otherwise false.
W_BuyingClimax(_data, _rejectionWick)
Determines if there is a sign of weakness (Buying Climax).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_rejectionWick (simple float) : (float) The rejection wick percentage.
Returns: (bool) True if there is a sign of weakness (Buying Climax), otherwise false.
W_NoEffortBullishResult()
Determines if there is a sign of weakness (No Effort Bullish Result).
Returns: (bool) True if there is a sign of weakness (No Effort Bullish Result), otherwise false.
W_BullishEffortNoResult()
Determines if there is a sign of weakness (Bullish Effort No Result).
Returns: (bool) True if there is a sign of weakness (Bullish Effort No Result), otherwise false.
W_InverseUpThrust(_data, _bullPinBarMaxBody, _bullPinBarMinWick)
Determines if there is a sign of weakness (Inverse UpThrust).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_bullPinBarMaxBody (simple float) : (float) The maximum body percentage for bull pin bar.
_bullPinBarMinWick (simple float) : (float) The minimum wick percentage for bull pin bar.
Returns: (bool) True if there is a sign of weakness (Inverse UpThrust), otherwise false.
W_FailedBuyingClimax()
Determines if there is a sign of weakness (Failed Buying Climax).
Returns: (bool) True if there is a sign of weakness (Failed Buying Climax), otherwise false.
W_BearOutsideReversal(_data)
Determines if there is a sign of weakness (Bear Outside Reversal).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
Returns: (bool) True if there is a sign of weakness (Bear Outside Reversal), otherwise false.
W_EndOfRisingMarket(_data)
Determines if there is a sign of weakness (End of Rising Market).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
Returns: (bool) True if there is a sign of weakness (End of Rising Market), otherwise false.
W_PseudoUpThrust(_bearPinBarMaxBody, _bearPinBarMinWick)
Determines if there is a sign of weakness (Pseudo UpThrust).
Parameters:
_bearPinBarMaxBody (simple float) : (float) The maximum body percentage for bear pin bar.
_bearPinBarMinWick (simple float) : (float) The minimum wick percentage for bear pin bar.
Returns: (bool) True if there is a sign of weakness (Pseudo UpThrust), otherwise false.
W_NoDemand(_bearPinBarMaxBody, _bearPinBarMinWick)
Determines if there is a sign of weakness (No Demand).
Parameters:
_bearPinBarMaxBody (simple float) : (float) The maximum body percentage for bear pin bar.
_bearPinBarMinWick (simple float) : (float) The minimum wick percentage for bear pin bar.
Returns: (bool) True if there is a sign of weakness (No Demand), otherwise false.
N_QuietDoji(_dojiBarMaxBody)
Determines if there is a neutral signal (Quiet Doji).
Parameters:
_dojiBarMaxBody (simple float) : (float) The maximum body percentage for doji bar.
Returns: (bool) True if there is a neutral signal (Quiet Doji), otherwise false.
N_BalancedDoji(_data, _dojiBarMaxBody)
Determines if there is a neutral signal (Balanced Doji).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_dojiBarMaxBody (simple float) : (float) The maximum body percentage for doji bar.
Returns: (bool) True if there is a neutral signal (Balanced Doji), otherwise false.
N_StrongDoji(_dojiBarMaxBody)
Determines if there is a neutral signal (Strong Doji).
Parameters:
_dojiBarMaxBody (simple float) : (float) The maximum body percentage for doji bar.
Returns: (bool) True if there is a neutral signal (Strong Doji), otherwise false.
N_QuietSpinningTop(_spinningTopBarMinWicks, _spinningTopBarEmaLength)
Determines if there is a neutral signal (Quiet Spinning Top).
Parameters:
_spinningTopBarMinWicks (simple float) : (float) The minimum wicks percentage for spinning top bar.
_spinningTopBarEmaLength (simple int) : (int) The length for EMA calculation.
Returns: (bool) True if there is a neutral signal (Quiet Spinning Top), otherwise false.
N_BalancedSpinningTop(_data, _spinningTopBarMinWicks, _spinningTopBarEmaLength)
Determines if there is a neutral signal (Balanced Spinning Top).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_spinningTopBarMinWicks (simple float) : (float) The minimum wicks percentage for spinning top bar.
_spinningTopBarEmaLength (simple int) : (int) The length for EMA calculation.
Returns: (bool) True if there is a neutral signal (Balanced Spinning Top), otherwise false.
N_StrongSpinningTop(_spinningTopBarMinWicks, _spinningTopBarEmaLength)
Determines if there is a neutral signal (Strong Spinning Top).
Parameters:
_spinningTopBarMinWicks (simple float) : (float) The minimum wicks percentage for spinning top bar.
_spinningTopBarEmaLength (simple int) : (int) The length for EMA calculation.
Returns: (bool) True if there is a neutral signal (Strong Spinning Top), otherwise false.
N_QuietHighWave(_highWaveBarMinBody, _highWaveBarMinWick, _highWaveBarBars)
Determines if there is a neutral signal (Quiet High Wave).
Parameters:
_highWaveBarMinBody (simple float) : (float) The minimum body percentage for high wave bar.
_highWaveBarMinWick (simple float) : (float) The minimum wick percentage for high wave bar.
_highWaveBarBars (simple int) : (int) The number of bars for comparison.
Returns: (bool) True if there is a neutral signal (Quiet High Wave), otherwise false.
N_BalancedHighWave(_data, _highWaveBarMinBody, _highWaveBarMinWick, _highWaveBarBars)
Determines if there is a neutral signal (Balanced High Wave).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_highWaveBarMinBody (simple float) : (float) The minimum body percentage for high wave bar.
_highWaveBarMinWick (simple float) : (float) The minimum wick percentage for high wave bar.
_highWaveBarBars (simple int) : (int) The number of bars for comparison.
Returns: (bool) True if there is a neutral signal (Balanced High Wave), otherwise false.
N_StrongHighWave(_highWaveBarMinBody, _highWaveBarMinWick, _highWaveBarBars)
Determines if there is a neutral signal (Strong High Wave).
Parameters:
_highWaveBarMinBody (simple float) : (float) The minimum body percentage for high wave bar.
_highWaveBarMinWick (simple float) : (float) The minimum wick percentage for high wave bar.
_highWaveBarBars (simple int) : (int) The number of bars for comparison.
Returns: (bool) True if there is a neutral signal (Strong High Wave), otherwise false.
N_Consolidation(_data, _consolidationBarSpread, _consolidationBarBars)
Determines if there is a neutral signal (Consolidation).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_consolidationBarSpread (simple float) : (float) The spread percentage for consolidation bar.
_consolidationBarBars (simple int) : (int) The number of bars for comparison.
Returns: (bool) True if there is a neutral signal (Consolidation), otherwise false.