Rev Smart Pivot V5.0 by SJKimRev Smart Pivot V5.0 by SJKim
Rev Smart Pivot V5.0 by SJKim
Rev Smart Pivot V5.0 by SJKim
Corak carta
4-Hour Range HighlighterThe 4-Hour Range Highlighter is a powerful visual analysis tool designed for traders operating on lower timeframes (like 5m, 15m, or 1H). It overlays the critical price range of the 4-hour (4H) candlestick onto your chart, providing immediate context from a higher timeframe. This helps you align your intraday trades with the dominant higher-timeframe structure, identifying key support and resistance zones, breakouts, and market volatility at a glance.
Key Features:
Visual Range Overlay: Draws a semi-transparent colored background spanning the entire High and Low of each 4-hour period.
Trend-Based Coloring: Automatically colors the range based on the 4H candle's direction:
Green: Bullish 4H candle (Close > Open)
Red: Bearish 4H candle (Close < Open)
Blue: Neutral 4H candle (Close = Open)
Customizable High/Low Lines: Optional, subtle lines plot the exact high and low of the 4H bar, acting as dynamic support/resistance levels.
Fully Customizable: Easily change colors and toggle visual elements on/off in the settings to match your chart's theme.
How to Use It:
Identify Key Levels: The top and bottom of the shaded area represent significant intraday support and resistance. Watch for price reactions at these levels.
Trade in Context: Use the trend color to gauge sentiment. For example, look for buy opportunities near the low of a bullish (green) 4H range.
Spot Breakouts: A strong candle closing above the high or below the low of the current 4H range can signal a continuation or the start of a new strong move.
Gauge Volatility: A large shaded area indicates a high-volatility 4H period. A small area suggests consolidation or low volatility.
Settings:
Visual Settings: Toggle the background and choose colors for Bullish, Bearish, and Neutral ranges.
Line Settings: Toggle the high/low lines and customize their colors.
Note: This is a visual aid, not a standalone trading system. It provides context but does not generate buy/sell signals. Always use it in conjunction with your own analysis and risk management.
Perfect for Day Traders, Swing Traders, and anyone who needs higher-timeframe context on their chart!
How to Use / Instructions:
After adding the script to your chart, open the settings menu (click on the indicator's name and then the gear icon).
In the "Inputs" tab, you will find two groups: "Visual Settings" and "Line Settings".
In Visual Settings, you can:
Toggle Show 4H Range Background on/off.
Change the Bullish Color, Bearish Color, and Neutral Color for the transparent background.
In Line Settings, you can:
Toggle Show High/Low Lines on/off.
Change the line colors for each trend type.
Adjust the colors to your preference. The default settings use transparency for a clean look that doesn't clutter the chart.
Ultra Volume DetectorNative Volume — Auto Levels + Ultra Label
What it does
This indicator classifies volume bars into four categories — Low, Medium, High, and Ultra — using rolling percentile thresholds. Instead of fixed cutoffs, it adapts dynamically to recent market activity, making it useful across different symbols and timeframes. Ultra-high volume bars are highlighted with labels showing compacted values (K/M/B/T) and the appropriate unit (shares, contracts, ticks, etc.).
Core Logic
Dynamic thresholds: Calculates percentile levels (e.g., 50th, 80th, 98th) over a user-defined window of bars.
Categorization: Bars are colored by category (Low/Med/High/Ultra).
Ultra labeling: Only Ultra bars are labeled, preventing chart clutter.
Optional MA: A moving average of raw volume can be plotted for context.
Alerts: Supports both alert condition for Ultra events and dynamic alert() messages that include the actual volume value at bar close.
How to use
Adjust window size: Larger windows (e.g., 200+) provide stable thresholds; smaller windows react more quickly.
Set percentiles: Typical defaults are 50 for Medium, 80 for High, and 98 for Ultra. Lower the Ultra percentile to see more frequent signals, or raise it to isolate only extreme events.
Read chart signals:
Bar colors show the category.
Labels appear only on Ultra bars.
Alerts can be set up for automatic notification when Ultra volume occurs.
Why it’s unique
Adaptive: Uses rolling statistics, not static thresholds.
Cross-asset ready: Adjusts units automatically depending on instrument type.
Efficient visualization: Focuses labels only on the most significant events, reducing noise.
⚠️ Disclaimer: This tool is for educational and analytical purposes only. It does not provide financial advice. Always test and manage risk before trading live
Machine Learning-Inspired Supply & Demand Zones [AlgoPoint]This indicator is a Smart Supply & Demand Zone tool, developed with principles inspired by Machine Learning (ML). It intelligently filters out market noise, allowing you to focus only on the most significant zones where institutional order flow is likely present.
💡 How It Works: Why Is This Indicator "Smart"?
Unlike traditional indicators that only measure simple price movements, this script uses an algorithm that asks the same critical questions an experienced market analyst would to qualify a zone:
- 1. Price Imbalance: How fast and aggressively did the price leave the zone? Our algorithm measures the body size of the "departure candle" relative to the current market volatility (ATR). A zone is only considered if it was formed by an explosive move that is statistically significant, indicating a major imbalance between buyers and sellers.
- 2. Volume Confirmation: Did the "smart money" participate in this move? The script checks if the volume on the departure candle was significantly higher than the recent average volume. A spike in volume confirms that the move was backed by institutional interest, adding strength and validity to the zone.
- 3. Valid Pivot Structure: Did the zone originate from a meaningful swing high or low? The algorithm first identifies a valid pivot structure, ensuring that zones are not drawn from insignificant or random price fluctuations.
Only when a potential zone passes these three critical tests—our "quality filter"—is it drawn on your chart.
🚀 Features & How to Use
Using the indicator is straightforward. You will see two primary types of boxes on your chart:
* 🟥 Red Box (Supply Zone): An area of potential resistance where selling pressure is likely to be strong. Look for potential shorting opportunities as the price approaches this zone.
* 🟩 Green Box (Demand Zone): An area of potential support where buying pressure is likely to be strong. Look for potential long opportunities as the price pulls back into this zone.
Dynamic Zone Management
This indicator is not static; it lives and breathes with the market:
- Fresh Zone: A newly formed zone appears in its full, vibrant color. These are the highest-probability zones as they have not yet been re-tested.
- Broken / Flipped Zone: You have full control over what happens when a zone is broken! In the settings, you can choose:
- Delete Zone: The zone will be removed completely when the price closes through it.
- Show as Broken (Flip): When broken, the zone will turn gray, stop extending, and remain on your chart. This is extremely useful for identifying Support/Resistance Flips, where a broken demand zone becomes new resistance, or a broken supply zone becomes new support.
⚙️ Settings & Customization
Fine-tune the indicator to match your personal trading style via the settings menu:
- Breakout Behavior: The most powerful feature. Choose between Delete Zone and Show as Broken (Flip) to customize your chart.
- Zone Finding Logic: Control the indicator's sensitivity.
- Selective: Requires both strong imbalance and high volume. Finds fewer, but higher-quality, zones.
- Moderate: Requires either strong imbalance or high volume. Finds more potential zones.
- Sensitivity Settings: Adjust the ATR Multiplier and Volume Multiplier to make the criteria for a "strong" zone stricter or looser.
BE-Fib Channel 2 Sided Trading█ Overview:
"BE-Fib Channel 2 Sided Trading" indicator is built with the thought of 2 profound setups named "Cup & Handle (C&H)" and "Fibonacci Channel Trading (FCT)" with the context of "day trading" or with a minimum holding period.
█ Similarities, Day Trading Context & Error Patterns:
While the known fact is that both C&H and FCT provide setups with lesser risk with bigger returns, they both share the similar "Base Pattern".
Note: Inverse of the above Image shall switch the setups between long vs short.
Since the indicator is designed for smaller time-frame candles, there may be instances where the "base pattern" does not visually resemble a Cup & Handle (C&H) pattern. However, patterns are validated using pivot points. The points labeled "A" and "C" can be equal or slightly slanted. Settings of the Indicator allows traders a flexibility to control the angle of these points to spot the strategies according to set conditions. Therefore, understanding the nuances of these patterns is crucial for effective decision-making.
█ 2 Sided Edge: FCT suggests to take trade closer to the yellow line to get better RR ratio. this leaves a small chance of doubt as to; what if price is intended to break the Yellow line thereby activating the C&H.
Wait for the confirmation is a Big FOMO with a compromised RR.
Hence, This indicator is designed to handle both the patterns based on the strength, FIFO and pattern occurring delay.
█ How to Use this Indicator:
Step 1: Enable the Show Sample Sensitivity option to understand the angle of yellow line shown in the sample image. By enabling this option, On the last bar you shall see 4 lines being plotted depicting the max angle which is acceptable for both long and short trades.
Note: Angle can be controlled via setting "Sensitivity".
Higher Sensitivity --> Higher Setup identification --> can lead to failed setups due to 2 sided trading.
Lower Sensitivity --> Lower Setup identification --> can increase the changes of being right.
Step 2: Adjust the look back & look forward periods which shall be used for identifying patterns.
Note: Smaller values can lead to more setups being identified but can hamper the performance of the indicator while increasing the chances of failures. larger values identifies more significant setup but leads to more waiting period thereby compromising on the RR.
Step 3: Adjust the Base Range.
Note: Smaller values can lead to more setups being identified but can hamper the performance of the indicator while increasing the chances of failures. larger values identifies more significant setup but leads to more Risk on play.
Step 4: set the Entry level for FCT & Set the SL for Both FCT & C&H and Target Reward ratio for C&H.
█ Features of Indicator & How it works:
1. Patterns are being identified using Pivot Points method.
2. Tracks & validates both the setups simultaneously on every candle and traded one at a time based on FIFO, New setups found in-between, Defined Entry Levels while on wait for the other pattern to get activated.
3. Alerts added for trade events.
4. FCT setups are generally traded with trailed SL level and increasing Target level on every completed bar. while C&H has the standard SL & TP level with no Trail SL option.
DISCLAIMER: No sharing, copying, reselling, modifying, or any other forms of use are authorized for our documents, script / strategy, and the information published with them. This informational planning script / strategy is strictly for individual use and educational purposes only. This is not financial or investment advice. Investments are always made at your own risk and are based on your personal judgement. I am not responsible for any losses you may incur. Please invest wisely.
Happy to receive suggestions and feedback in order to improve the performance of the indicator better.
BTC/USD 3-Min Binary Prediction [v7.2 EN]BTC/USD 3-Minute Binary Prediction Indicator v7.2 - Complete Guide
Overview
This is an advanced technical analysis indicator designed for Bitcoin/USD binary options trading with 3-minute expiration times. The system aims for an 83% win rate by combining multiple analysis layers and pattern recognition.
How It Works
Core Prediction Logic
- Timeframe: Predicts whether BTC price will be ±$25 higher (HIGH) or lower (LOW) after 3 minutes
- Entry Signals: Generates HIGH/LOW signals when confidence exceeds threshold (default 75%)
- Verification: Automatically tracks and displays win/loss statistics in real-time
5-Layer Filter System
The indicator uses a sophisticated scoring system (0-100 points):
1. Trend Filter (25 points) - Analyzes EMA alignments and price momentum
2. Leading Indicators (25 points) - RSI and MACD divergence analysis
3. Volume Confirmation (20 points) - Detects unusual volume patterns
4. Support/Resistance (15 points) - Identifies key price levels
5. Momentum Alignment (15 points) - Measures acceleration and deceleration
Pattern Recognition
Automatically detects and visualizes:
- Double Tops/Bottoms - Reversal patterns
- Triangles - Ascending, descending, symmetrical
- Channels - Trending price channels
- Candlestick Patterns - Engulfing, hammer, hanging man
Multi-Timeframe Analysis
- Uses 1-minute and 5-minute data for confirmation
- Aligns multiple timeframes for higher probability trades
- Monitors trend consistency across timeframes
Key Features
Display Panels
1. Statistics Panel (Top Right)
- Overall win rate percentage
- Hourly performance (wins/losses)
- Daily performance
- Current system status
2. Analysis Panel (Left Side)
- Market trend analysis
- RSI status (overbought/oversold)
- Volume conditions
- Filter scores for each component
- Final HIGH/LOW/WAIT decision
Visual Signals
- Green Triangle (↑) = HIGH prediction
- Red Triangle (↓) = LOW prediction
- Yellow Background = Entry opportunity
- Blue Background = Waiting for result
Configuration Options
Basic Settings
- Range Width: Target price movement (default $50 = ±$25)
- Min Confidence: Minimum confidence to enter (default 75%)
- Max Daily Trades: Risk management limit (default 5)
Filters (Can be toggled on/off)
- Trend Filter
- Volume Confirmation
- Support/Resistance Filter
- Momentum Alignment
Display Options
- Show/hide signals, statistics, analysis
- Minimal Mode for cleaner charts
- EMA line visibility
Important Risk Warnings
Binary Options Trading Risks:
1. High Risk Product - Binary options are extremely risky and banned in many countries
2. Not Investment Advice - This tool is for educational/analytical purposes only
3. No Guaranteed Returns - Past performance doesn't predict future results
4. Capital at Risk - You can lose your entire investment in seconds
Technical Limitations:
- Requires stable internet connection
- Performance varies with market conditions
- High volatility can reduce accuracy
- Not suitable for news events or low liquidity periods
Best Practices
1. Paper Trade First - Test thoroughly on demo accounts
2. Risk Management - Never risk more than 1-2% per trade
3. Market Conditions - Works best in normal volatility conditions
4. Avoid Major Events - Don't trade during major news releases
5. Monitor Performance - Track your actual results vs displayed statistics
Setup Instructions
1. Add to TradingView chart (BTC/USD preferred)
2. Use 30-second or 1-minute chart timeframe
3. Adjust settings based on your risk tolerance
4. Monitor F-Score (should be >65 for entries)
5. Wait for clear HIGH/LOW signals with high confidence
Alert Configuration
The indicator provides three alert types:
- HIGH Signal alerts
- LOW Signal alerts
- General entry opportunity alerts
Legal Disclaimer
Binary options trading may not be legal in your jurisdiction. Many countries including the USA, Canada, and EU nations have restrictions or outright bans on binary options. Always check local regulations and consult with financial advisors before trading.
Remember: This is a technical analysis tool, not a money-printing machine. Successful trading requires discipline, risk management, and continuous learning. The displayed statistics are historical and don't guarantee future performance.
Ranges by TraderHaroThis indicator highlights a custom price range for a selected date/time period on your chart. It draws key levels (0.00, 0.25, 0.50, 0.75, 1.00) within the range, visually marking the Premium Zone (upper range) and Discount Zone (lower range).
Features:
- Define a specific date/time range for the analysis.
- Optional fill between top and bottom levels with customizable color and transparency.
- Shows mid-levels (0.25, 0.50, 0.75) for additional guidance.
- Lines and fill can be extended to the right side of the chart.
- Labels for levels can be displayed or hidden.
Use Case:
Quickly identify where price is trading relative to a defined range, visualize potential zones of premium (resistance) and discount (support), and make better-informed trading decisions.
Elliott Wave / NeoWave Rule Engine – v6.9This script functions as a "rule engine" that automatically identifies significant price swings and then tests them against a comprehensive set of Elliott Wave rules and guidelines.
The goal is to filter out low-probability setups and identify valid motive (impulse and diagonal) waves by applying user-defined tolerances. The script plots swings on the chart and can display a real-time dashboard that shows which rules are passing or failing. When a valid motive wave is detected, it can generate buy or sell signals.
User Settings
The script's behavior is controlled by a set of user inputs, organized into four main groups.
Swing / ZigZag Detection
These settings control how the script identifies the price swings that form the basis of the wave patterns.
Pivot Left Bars & Pivot Right Bars: These two values determine the sensitivity of the swing detection. A pivot point (a high or low) is only identified if it is the highest or lowest price within the specified number of bars to its left and right. Increasing these numbers will result in fewer, larger swings.
Minimum swing % (filter micro noise): This is a crucial filter. It ignores swings that are too small to be considered significant, helping to clean up the chart and prevent the engine from analyzing "noise." For example, a value of 0.3 means any swing that is less than 0.3% of the price range will be ignored.
Rule Engine Tolerances
This group allows you to define how strict the validation rules are.
Fibonacci tolerance (±%): This sets the acceptable margin of error for Fibonacci relationships (e.g., a 0.618 retracement). A value of 0.001 means a retracement between 0.617 and 0.619 will be considered a valid match.
Same-degree TIME proportion max (x): This sets the maximum time difference allowed between waves of the same degree (e.g., Wave 1 and Wave 3) to still be considered "proportional." A value of 1 means Wave 3's duration can be up to 1 time longer than Wave 1's duration, and vice-versa.
Same-degree PRICE proportion max (x): Similar to the time tolerance, this sets the maximum price difference allowed between waves of the same degree to still be considered proportional.
Alternation slope ratio threshold: This is a key NeoWave guideline. It checks if Wave 2 and Wave 4 have different "sharpness" (price change per bar). A higher value makes the alternation rule stricter.
Min guideline passes for motive validation (0–7): This is the gating feature. Even if a pattern passes all the hard Elliott Wave rules (e.g., no overlap, Wave 3 isn't the shortest), you can still require it to pass a minimum number of guidelines (like Fibonacci relationships, alternation, etc.) before a signal is generated. A value of 7 means every guideline must be met.
Momentum / Volume Guidelines
These are additional checks for pattern validation.
Momentum length: This setting controls a proxy for momentum, which is calculated based on the speed of price movement.
Use volume checks: This is a placeholder for future functionality. It does not currently affect the script's behavior.
UI / Debug
These settings control the visual aspects of the script on your chart.
Max swings to keep/evaluate: This determines how far back the script looks to find and analyze swings. A larger number will analyze more historical patterns but may impact performance.
Show detected labels: Toggles the display of numerical (1-2-3-4-5) and letter (A-B-C) labels on the detected waves.
Show rule PASS/FAIL dashboard: Toggles the on-chart table that provides a detailed breakdown of which rules and guidelines are met.
Table Position: Controls where the rule dashboard is located on your chart.
Print debug info to Data Window: If you are a developer or want to see the underlying data, this will print information to TradingView's Data Window.
Show Buy/Sell Signals: Toggles the display of Buy/Sell signals. These signals are only generated when a pattern passes all the hard rules and your minimum guideline pass requirement.
PnL Bubble [%] | Fractalyst1. What's the indicator purpose?
The PnL Bubble indicator transforms your strategy's trade PnL percentages into an interactive bubble chart with professional-grade statistics and performance analytics. It helps traders quickly assess system profitability, understand win/loss distribution patterns, identify outliers, and make data-driven strategy improvements.
How does it work?
Think of this indicator as a visual report card for your trading performance. Here's what it does:
What You See
Colorful Bubbles: Each bubble represents one of your trades
Blue/Cyan bubbles = Winning trades (you made money)
Red bubbles = Losing trades (you lost money)
Bigger bubbles = Bigger wins or losses
Smaller bubbles = Smaller wins or losses
How It Organizes Your Trades:
Like a Photo Album: Instead of showing all your trades at once (which would be messy), it shows them in "pages" of 500 trades each:
Page 1: Your first 500 trades
Page 2: Trades 501-1000
Page 3: Trades 1001-1500, etc.
What the Numbers Tell You:
Average Win: How much money you typically make on winning trades
Average Loss: How much money you typically lose on losing trades
Expected Value (EV): Whether your trading system makes money over time
Positive EV = Your system is profitable long-term
Negative EV = Your system loses money long-term
Payoff Ratio (R): How your average win compares to your average loss
R > 1 = Your wins are bigger than your losses
R < 1 = Your losses are bigger than your wins
Why This Matters:
At a Glance: You can instantly see if you're a profitable trader or not
Pattern Recognition: Spot if you have more big wins than big losses
Performance Tracking: Watch how your trading improves over time
Realistic Expectations: Understand what "average" performance looks like for your system
The Cool Visual Effects:
Animation: The bubbles glow and shimmer to make the chart more engaging
Highlighting: Your biggest wins and losses get extra attention with special effects
Tooltips: hover any bubble to see details about that specific trade.
What are the underlying calculations?
The indicator processes trade PnL data using a dual-matrix architecture for optimal performance:
Dual-Matrix System:
• Display Matrix (display_matrix): Bounded to 500 trades for rendering performance
• Statistics Matrix (stats_matrix): Unbounded storage for complete statistical accuracy
Trade Classification & Aggregation:
// Separate wins, losses, and break-even trades
if val > 0.0
pos_sum += val // Sum winning trades
pos_count += 1 // Count winning trades
else if val < 0.0
neg_sum += val // Sum losing trades
neg_count += 1 // Count losing trades
else
zero_count += 1 // Count break-even trades
Statistical Averages:
avg_win = pos_count > 0 ? pos_sum / pos_count : na
avg_loss = neg_count > 0 ? math.abs(neg_sum) / neg_count : na
Win/Loss Rates:
total_obs = pos_count + neg_count + zero_count
win_rate = pos_count / total_obs
loss_rate = neg_count / total_obs
Expected Value (EV):
ev_value = (avg_win × win_rate) - (avg_loss × loss_rate)
Payoff Ratio (R):
R = avg_win ÷ |avg_loss|
Contribution Analysis:
ev_pos_contrib = avg_win × win_rate // Positive EV contribution
ev_neg_contrib = avg_loss × loss_rate // Negative EV contribution
How to integrate with any trading strategy?
Equity Change Tracking Method:
//@version=6
strategy("Your Strategy with Equity Change Export", overlay=true)
float prev_trade_equity = na
float equity_change_pct = na
if barstate.isconfirmed and na(prev_trade_equity)
prev_trade_equity := strategy.equity
trade_just_closed = strategy.closedtrades != strategy.closedtrades
if trade_just_closed and not na(prev_trade_equity)
current_equity = strategy.equity
equity_change_pct := ((current_equity - prev_trade_equity) / prev_trade_equity) * 100
prev_trade_equity := current_equity
else
equity_change_pct := na
plot(equity_change_pct, "Equity Change %", display=display.data_window)
Integration Steps:
1. Add equity tracking code to your strategy
2. Load both strategy and PnL Bubble indicator on the same chart
3. In bubble indicator settings, select your strategy's equity tracking output as data source
4. Configure visualization preferences (colors, effects, page navigation)
How does the pagination system work?
The indicator uses an intelligent pagination system to handle large trade datasets efficiently:
Page Organization:
• Page 1: Trades 1-500 (most recent)
• Page 2: Trades 501-1000
• Page 3: Trades 1001-1500
• Page N: Trades to
Example: With 1,500 trades total (3 pages available):
• User selects Page 1: Shows trades 1-500
• User selects Page 4: Automatically falls back to Page 3 (trades 1001-1500)
5. Understanding the Visual Elements
Bubble Visualization:
• Color Coding: Cyan/blue gradients for wins, red gradients for losses
• Size Mapping: Bubble size proportional to trade magnitude (larger = bigger P&L)
• Priority Rendering: Largest trades displayed first to ensure visibility
• Gradient Effects: Color intensity increases with trade magnitude within each category
Interactive Tooltips:
Each bubble displays quantitative trade information:
tooltip_text = outcome + " | PnL: " + pnl_str +
" Date: " + date_str + " " + time_str +
" Trade #" + str.tostring(trade_number) + " (Page " + str.tostring(active_page) + ")" +
" Rank: " + str.tostring(rank) + " of " + str.tostring(n_display_rows) +
" Percentile: " + str.tostring(percentile, "#.#") + "%" +
" Magnitude: " + str.tostring(magnitude_pct, "#.#") + "%"
Example Tooltip:
Win | PnL: +2.45%
Date: 2024.03.15 14:30
Trade #1,247 (Page 3)
Rank: 5 of 347
Percentile: 98.6%
Magnitude: 85.2%
Reference Lines & Statistics:
• Average Win Line: Horizontal reference showing typical winning trade size
• Average Loss Line: Horizontal reference showing typical losing trade size
• Zero Line: Threshold separating wins from losses
• Statistical Labels: EV, R-Ratio, and contribution analysis displayed on chart
What do the statistical metrics mean?
Expected Value (EV):
Represents the mathematical expectation per trade in percentage terms
EV = (Average Win × Win Rate) - (Average Loss × Loss Rate)
Interpretation:
• EV > 0: Profitable system with positive mathematical expectation
• EV = 0: Break-even system, profitability depends on execution
• EV < 0: Unprofitable system with negative mathematical expectation
Example: EV = +0.34% means you expect +0.34% profit per trade on average
Payoff Ratio (R):
Quantifies the risk-reward relationship of your trading system
R = Average Win ÷ |Average Loss|
Interpretation:
• R > 1.0: Wins are larger than losses on average (favorable risk-reward)
• R = 1.0: Wins and losses are equal in magnitude
• R < 1.0: Losses are larger than wins on average (unfavorable risk-reward)
Example: R = 1.5 means your average win is 50% larger than your average loss
Contribution Analysis (Σ):
Breaks down the components of expected value
Positive Contribution (Σ+) = Average Win × Win Rate
Negative Contribution (Σ-) = Average Loss × Loss Rate
Purpose:
• Shows how much wins contribute to overall expectancy
• Shows how much losses detract from overall expectancy
• Net EV = Σ+ - Σ- (Expected Value per trade)
Example: Σ+: 1.23% means wins contribute +1.23% to expectancy
Example: Σ-: -0.89% means losses drag expectancy by -0.89%
Win/Loss Rates:
Win Rate = Count(Wins) ÷ Total Trades
Loss Rate = Count(Losses) ÷ Total Trades
Shows the probability of winning vs losing trades
Higher win rates don't guarantee profitability if average losses exceed average wins
7. Demo Mode & Synthetic Data Generation
When using built-in sources (close, open, etc.), the indicator generates realistic demo trades for testing:
if isBuiltInSource(source_data)
// Generate random trade outcomes with realistic distribution
u_sign = prand(float(time), float(bar_index))
if u_sign < 0.5
v_push := -1.0 // Loss trade
else
// Skewed distribution favoring smaller wins (realistic)
u_mag = prand(float(time) + 9876.543, float(bar_index) + 321.0)
k = 8.0 // Skewness factor
t = math.pow(u_mag, k)
v_push := 2.5 + t * 8.0 // Win trade
Demo Characteristics:
• Realistic win/loss distribution mimicking actual trading patterns
• Skewed distribution favoring smaller wins over large wins
• Deterministic randomness for consistent demo results
• Includes jitter effects to prevent visual overlap
8. Performance Limitations & Optimizations
Display Constraints:
points_count = 500 // Maximum 500 dots per page for optimal performance
Pine Script v6 Limits:
• Label Count: Maximum 500 labels per indicator
• Line Count: Maximum 100 lines per indicator
• Box Count: Maximum 50 boxes per indicator
• Matrix Size: Efficient memory management with dual-matrix system
Optimization Strategies:
• Pagination System: Handle unlimited trades through 500-trade pages
• Priority Rendering: Largest trades displayed first for maximum visibility
• Dual-Matrix Architecture: Separate display (bounded) from statistics (unbounded)
• Smart Fallback: Automatic page clamping prevents empty displays
Impact & Workarounds:
• Visual Limitation: Only 500 trades visible per page
• Statistical Accuracy: Complete dataset used for all calculations
• Navigation: Use page input to browse through entire trade history
• Performance: Smooth operation even with thousands of trades
9. Statistical Accuracy Guarantees
Data Integrity:
• Complete Dataset: Statistics matrix stores ALL trades without limit
• Proper Aggregation: Separate tracking of wins, losses, and break-even trades
• Mathematical Precision: Pine Script v6's enhanced floating-point calculations
• Dual-Matrix System: Display limitations don't affect statistical accuracy
Calculation Validation:
// Verified formulas match standard trading mathematics
avg_win = pos_sum / pos_count // Standard average calculation
win_rate = pos_count / total_obs // Standard probability calculation
ev_value = (avg_win * win_rate) - (avg_loss * loss_rate) // Standard EV formula
Accuracy Features:
• Mathematical Correctness: Formulas follow established trading statistics
• Data Preservation: Complete dataset maintained for all calculations
• Precision Handling: Proper rounding and boundary condition management
• Real-Time Updates: Statistics recalculated on every new trade
10. Advanced Technical Features
Real-Time Animation Engine:
// Shimmer effects with sine wave modulation
offset = math.sin(shimmer_t + phase) * amp
// Dynamic transparency with organic flicker
new_transp = math.min(flicker_limit, math.max(-flicker_limit, cur_transp + dir * flicker_step))
• Sine Wave Shimmer: Dynamic glowing effects on bubbles
• Organic Flicker: Random transparency variations for natural feel
• Extreme Value Highlighting: Special visual treatment for outliers
• Smooth Animations: Tick-based updates for fluid motion
Magnitude-Based Priority Rendering:
// Sort trades by magnitude for optimal visual hierarchy
sort_indices_by_magnitude(values_mat)
• Largest First: Most important trades always visible
• Intelligent Sorting: Custom bubble sort algorithm for trade prioritization
• Performance Optimized: Efficient sorting for real-time updates
• Visual Hierarchy: Ensures critical trades never get hidden
Professional Tooltip System:
• Quantitative Data: Pure numerical information without interpretative language
• Contextual Ranking: Shows trade position within page dataset
• Percentile Analysis: Performance ranking as percentage
• Magnitude Scaling: Relative size compared to page maximum
• Professional Format: Clean, data-focused presentation
11. Quick Start Guide
Step 1: Add Indicator
• Search for "PnL Bubble | Fractalyst" in TradingView indicators
• Add to your chart (works on any timeframe)
Step 2: Configure Data Source
• Demo Mode: Leave source as "close" to see synthetic trading data
• Strategy Mode: Select your strategy's PnL% output as data source
Step 3: Customize Visualization
• Colors: Set positive (cyan), negative (red), and neutral colors
• Page Navigation: Use "Trade Page" input to browse trade history
• Visual Effects: Built-in shimmer and animation effects are enabled by default
Step 4: Analyze Performance
• Study bubble patterns for win/loss distribution
• Review statistical metrics: EV, R-Ratio, Win Rate
• Use tooltips for detailed trade analysis
• Navigate pages to explore full trade history
Step 5: Optimize Strategy
• Identify outlier trades (largest bubbles)
• Analyze risk-reward profile through R-Ratio
• Monitor Expected Value for system profitability
• Use contribution analysis to understand win/loss impact
12. Why Choose PnL Bubble Indicator?
Unique Advantages:
• Advanced Pagination: Handle unlimited trades with smart fallback system
• Dual-Matrix Architecture: Perfect balance of performance and accuracy
• Professional Statistics: Institution-grade metrics with complete data integrity
• Real-Time Animation: Dynamic visual effects for engaging analysis
• Quantitative Tooltips: Pure numerical data without subjective interpretations
• Priority Rendering: Intelligent magnitude-based display ensures critical trades are always visible
Technical Excellence:
• Built with Pine Script v6 for maximum performance and modern features
• Optimized algorithms for smooth operation with large datasets
• Complete statistical accuracy despite display optimizations
• Professional-grade calculations matching institutional trading analytics
Practical Benefits:
• Instantly identify system profitability through visual patterns
• Spot outlier trades and risk management issues
• Understand true risk-reward profile of your strategies
• Make data-driven decisions for strategy optimization
• Professional presentation suitable for performance reporting
Disclaimer & Risk Considerations:
Important: Historical performance metrics, including positive Expected Value (EV), do not guarantee future trading success. Statistical measures are derived from finite sample data and subject to inherent limitations:
• Sample Bias: Historical data may not represent future market conditions or regime changes
• Ergodicity Assumption: Markets are non-stationary; past statistical relationships may break down
• Survivorship Bias: Strategies showing positive historical EV may fail during different market cycles
• Parameter Instability: Optimal parameters identified in backtesting often degrade in forward testing
• Transaction Cost Evolution: Slippage, spreads, and commission structures change over time
• Behavioral Factors: Live trading introduces psychological elements absent in backtesting
• Black Swan Events: Extreme market events can invalidate statistical assumptions instantaneously
BTC Macro Composite Global liquidity Index -OffsetThis indicator is based on the thesis that Bitcoin price movements are heavily influenced by macro liquidity trends. It calculates a weighted composite index based on the following components:
• Global Liquidity (41%): Sum of central bank balance sheets (Fed , ECB , BoJ , and PBoC ), adjusted to USD.
• Investor Risk Appetite (22%): Derived from the Copper/Gold ratio, inverse VIX (as a risk-on signal), and the spread between High Yield and Investment Grade bonds (HY vs IG OAS).
• Gold Sensitivity (15–20%): Combines the XAUUSD price with BTC/Gold ratio to reflect the historical influence of gold on Bitcoin pricing.
Each component is normalized and then offset forward by 90 days to attempt predictive alignment with Bitcoin’s price.
The goal is to identify macro inflection points with high predictive value for BTC. It is not a trading signal generator but rather a macro trend context indicator.
❗ Important: This script should be used with caution. It does not account for geopolitical shocks, regulatory events, or internal BTC market structure (e.g., miner behavior, on-chain metrics).
💡 How to use:
• Use on the 1D timeframe.
• Look for divergences between BTC price and the macro index.
• Apply in confluence with other technical or fundamental frameworks.
🔍 Originality:
While similar components exist in macro dashboards, this script combines them uniquely using time-forward offsets and custom weighting specifically tailored for BTC behavior.
Day Label-WeeklyProfile-AdrianFx94This indicator is designed for Daily charts.
It writes a small label (like “L, M, G, V”) inside each candle’s body, exactly in the middle between the open and close.
Each label tells you which weekday closed that candle:
L → Monday
M → Tuesday
M/ME → Wednesday
G → Thursday
V → Friday
(Saturday and Sunday aren’t marked.)
Why it’s useful
It gives you a quick visual map of the week’s progression, day by day.
You immediately see the sequence of daily closes inside a week.
You can spot when the market trended cleanly through the week (labels step up or down neatly).
You notice when there’s choppy or balanced behavior (labels are mixed, up and down).
You can identify which day was the turning point or initiative day (a single label much higher or lower than the rest).
It’s a simple way to read the weekly profile of price action without having to remember which candle is which day.
Controls you have
You can change the letters (for example, instead of “L” you could write “Mo”).
You can change the text size, color, and add a background.
You can choose to show:
All weeks
Only this week
Only last week
That helps when you want to focus on a single week’s structure.
Important notes
It only works on Daily charts. On smaller timeframes it will just warn you.
The label sticks to the candle’s body, so even if you zoom or pan, it stays anchored where that day closed.
It’s not a volume profile or TPO — it’s purely about the closing position of each day.
👉 In short: this indicator is like a weekly diary on your chart — each candle is marked with the day of the week, so you can quickly analyze how the market behaved across past weeks, which days carried strength, and where momentum shifted.
This indicator shows a short label for each weekday directly inside the daily candle.
The nice part is: you can choose the letters yourself.
For example, if you are Italian, you might want:
Monday → L (Lunedì)
Tuesday → M (Martedì)
Wednesday → ME (Mercoledì)
Thursday → G (Giovedì)
Friday → V (Venerdì)
If you prefer English, you could set:
Monday → M
Tuesday → T
Wednesday → W
Thursday → Th
Friday → F
If you want very short codes, you could just write 1, 2, 3, 4, 5.
So the indicator is language-neutral — you adapt it to your country, your style, or even your personal system of marks.
RVM LLS Indicator and Low cheat Set upLow cheat set up. The indicator helps for a low stop loss entry. Risk reward should be well managed. Use it at your own risk. Enjoy.
Indicator 102#M3indicator based on Daily and weekly fib Level. Initial Breakout and breakdowns have been denoted as well
MuLegend's Break & Retest StrategyThis strategy was produced to help traders who trade NQ: win! try it out on a demo, see how you like and happy trading!! Works well if you are a break & retest trader!!!
MuMu
@atltime2shine on IG
Yaso- Structural Signals: Buy/Sell (Clean v5)//@version=5
indicator("Structural Signals: Buy/Sell (Clean v5)", overlay=true)
//===================== Inputs =====================
grpCtx = "Context (Structure)"
lenDon = input.int(20, "Donchian Lookback (S/R proxy)", minval=5, group=grpCtx)
ema20On = input.bool(true, "Show EMA 20", group=grpCtx)
ema50On = input.bool(true, "Show EMA 50", group=grpCtx)
ema200On = input.bool(true, "Show EMA 200", group=grpCtx)
grpVol = "Volume Confirmation"
volLen = input.int(20, "Volume SMA Length", minval=2, group=grpVol)
volMult = input.float(1.5, "Volume Spike × SMA", minval=1.0, step=0.1, group=grpVol)
grpCand = "Candlestick Reversal (at Structure)"
useHammer = input.bool(true, "BUY: Hammer/Bottoming Tail near Support", group=grpCand)
useStar = input.bool(true, "SELL: Shooting Star/Topping Tail near Resistance", group=grpCand)
srNearPct = input.float(0.004, "‘Near’ S/R tolerance (0.004=0.4%)", step=0.001, minval=0.0, group=grpCand)
grpBreak = "Breakouts / Breakdowns"
useBO = input.bool(true, "BUY: Breakout above Resistance (Donchian High)", group=grpBreak)
useBD = input.bool(true, "SELL: Breakdown below Support (Donchian Low)", group=grpBreak)
grpPats = "Double Tops / Bottoms (pivots)"
useDB = input.bool(true, "BUY: Double Bottom / Higher Low", group=grpPats)
useDT = input.bool(true, "SELL: Double Top / Lower High", group=grpPats)
pvLeft = input.int(3, "Pivot Left Bars", minval=2, group=grpPats)
pvRight = input.int(3, "Pivot Right Bars", minval=2, group=grpPats)
matchTolPct = input.float(0.0075, "Price Match Tolerance (0.75%)", step=0.0005, minval=0.0, group=grpPats)
grpXover = "Trend Filters (Crosses)"
useGolden = input.bool(true, "BUY: Golden Cross (EMA50 > EMA200)", group=grpXover)
useDeath = input.bool(true, "SELL: Death Cross (EMA50 < EMA200)", group=grpXover)
grpGap = "Gap Fills (Daily preferred)"
useGapUpRev = input.bool(true, "SELL: Gap-Up Fill & Reversal (close < prior close)", group=grpGap)
useGapDnRev = input.bool(true, "BUY: Gap-Down Fill & Reversal (close > prior close)", group=grpGap)
minGapPct = input.float(0.01, "Min Gap % (1% = 0.01)", minval=0.0, step=0.001, group=grpGap)
grpAgg = "Alert Controls"
aggregateAlerts = input.bool(true, "Enable Aggregate BUY/SELL Alerts", group=grpAgg)
//===================== Context =====================
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
donHi = ta.highest(high, lenDon)
donLo = ta.lowest(low, lenDon)
plot(ema20On ? ema20 : na, "EMA 20", color=color.new(color.teal, 0), linewidth=2)
plot(ema50On ? ema50 : na, "EMA 50", color=color.new(color.orange, 0), linewidth=2)
plot(ema200On ? ema200 : na, "EMA 200", color=color.new(color.blue, 0), linewidth=2)
plot(donHi, "Donchian High", color=color.new(color.red, 40))
plot(donLo, "Donchian Low", color=color.new(color.green,40))
volSMA = ta.sma(volume, volLen)
volSpike = volume > volSMA * volMult
//===================== Helpers =====================
near(val, ref, pct) =>
// true if |val - ref| / ref <= pct (with nz guard)
math.abs(val - ref) / nz(ref, val) <= pct
lowerWick() =>
(open < close ? open : close) - low
upperWick() =>
high - (open > close ? open : close)
bodySize() =>
math.abs(close - open)
isHammer() =>
lw = lowerWick()
uw = upperWick()
bd = bodySize()
lw >= bd * 2 and uw <= bd * 0.6 and close > open
isShootingStar() =>
lw = lowerWick()
uw = upperWick()
bd = bodySize()
uw >= bd * 2 and lw <= bd * 0.6 and close < open
nearSupport = near(low, donLo, srNearPct) or near(low, ema200, srNearPct)
nearResist = near(high, donHi, srNearPct) or near(high, ema200, srNearPct)
//===================== Signals =====================
// Breakouts / Breakdowns
buyBreakout = useBO and ta.crossover(close, donHi ) and (volSpike or close > donHi )
sellBreakdown = useBD and ta.crossunder(close, donLo ) and (volSpike or close < donLo )
// Pivots → Double Bottom / Top
pL = ta.pivotlow(low, pvLeft, pvRight)
pH = ta.pivothigh(high, pvLeft, pvRight)
lastLow = ta.valuewhen(pL, low , 0)
prevLow = ta.valuewhen(pL, low , 1)
lastHigh = ta.valuewhen(pH, high , 0)
prevHigh = ta.valuewhen(pH, high , 1)
priceMatch(a, b, tol) =>
not na(a) and not na(b) and math.abs(a - b) / b <= tol
doubleBottom = useDB and priceMatch(lastLow, prevLow, matchTolPct) and nz(lastLow) > nz(prevLow)
doubleTop = useDT and priceMatch(lastHigh, prevHigh, matchTolPct) and nz(lastHigh) < nz(prevHigh)
// Crosses (trend)
goldenCross = useGolden and ta.crossover(ema50, ema200)
deathCross = useDeath and ta.crossunder(ema50, ema200)
// Gap fill reversals (daily)
isDaily = timeframe.isdaily
gapUp = isDaily and open > close * (1 + minGapPct)
gapDown = isDaily and open < close * (1 - minGapPct)
gapUpFillRev = useGapUpRev and gapUp and high >= close and close < close
gapDnFillRev = useGapDnRev and gapDown and low <= close and close > close
// Candles at structure
hammerAtSupport = useHammer and isHammer() and nearSupport
starAtResist = useStar and isShootingStar() and nearResist
// Aggregate booleans (no arrays, no loops)
anyBuy = hammerAtSupport or buyBreakout or doubleBottom or goldenCross or gapDnFillRev
anySell = starAtResist or sellBreakdown or doubleTop or deathCross or gapUpFillRev
//===================== Plots =====================
plotshape(hammerAtSupport, title="BUY: Hammer @ Support", style=shape.triangleup, color=color.new(color.lime, 0), size=size.tiny, location=location.belowbar, text="Hammer@S")
plotshape(buyBreakout, title="BUY: Breakout", style=shape.triangleup, color=color.new(color.green, 0), size=size.tiny, location=location.belowbar, text="BO")
plotshape(doubleBottom, title="BUY: Double Bottom", style=shape.triangleup, color=color.new(color.teal, 0), size=size.tiny, location=location.belowbar, text="DB")
plotshape(goldenCross, title="BUY: Golden Cross", style=shape.triangleup, color=color.new(color.aqua, 0), size=size.tiny, location=location.belowbar, text="GC")
plotshape(gapDnFillRev, title="BUY: Gap-Down Reversal",style=shape.triangleup, color=color.new(color.fuchsia,0), size=size.tiny, location=location.belowbar, text="GapDnREV")
plotshape(starAtResist, title="SELL: Star @ Resistance",style=shape.triangledown, color=color.new(color.red, 0), size=size.tiny, location=location.abovebar, text="Star@R")
plotshape(sellBreakdown, title="SELL: Breakdown", style=shape.triangledown, color=color.new(color.maroon, 0), size=size.tiny, location=location.abovebar, text="BD")
plotshape(doubleTop, title="SELL: Double Top", style=shape.triangledown, color=color.new(color.orange, 0), size=size.tiny, location=location.abovebar, text="DT")
plotshape(deathCross, title="SELL: Death Cross", style=shape.triangledown, color=color.new(color.purple, 0), size=size.tiny, location=location.abovebar, text="DC")
plotshape(gapUpFillRev, title="SELL: Gap-Up Reversal", style=shape.triangledown, color=color.new(color.yellow, 0), size=size.tiny, location=location.abovebar, text="GapUpREV")
plotshape(aggregateAlerts and anyBuy, title="BUY (Aggregate)", style=shape.labelup, color=color.new(color.green, 70), textcolor=color.black, text="BUY", location=location.belowbar, size=size.tiny)
plotshape(aggregateAlerts and anySell, title="SELL (Aggregate)", style=shape.labeldown, color=color.new(color.red, 70), textcolor=color.black, text="SELL", location=location.abovebar, size=size.tiny)
//===================== Alerts =====================
alertcondition(hammerAtSupport, "BUY: Hammer @ Support", "Hammer/Bottoming Tail at support on {{ticker}} {{interval}}")
alertcondition(buyBreakout, "BUY: Breakout", "Breakout above Donchian High on {{ticker}} {{interval}}")
alertcondition(doubleBottom, "BUY: Double Bottom", "Double Bottom/Higher Low on {{ticker}} {{interval}}")
alertcondition(goldenCross, "BUY: Golden Cross", "EMA50 crosses above EMA200 on {{ticker}} {{interval}}")
alertcondition(gapDnFillRev, "BUY: Gap-Down Reversal","Gap-down filled & reversed on {{ticker}} {{interval}}")
alertcondition(starAtResist, "SELL: Star @ Resistance","Shooting Star/Topping Tail at resistance on {{ticker}} {{interval}}")
alertcondition(sellBreakdown, "SELL: Breakdown", "Breakdown below Donchian Low on {{ticker}} {{interval}}")
alertcondition(doubleTop, "SELL: Double Top", "Double Top/Lower High on {{ticker}} {{interval}}")
alertcondition(deathCross, "SELL: Death Cross", "EMA50 crosses below EMA200 on {{ticker}} {{interval}}")
alertcondition(gapUpFillRev, "SELL: Gap-Up Reversal", "Gap-up filled & reversed on {{ticker}} {{interval}}")
// Aggregate
alertcondition(aggregateAlerts and anyBuy, "BUY: Aggregate", "Structural BUY signal on {{ticker}} {{interval}}")
alertcondition(aggregateAlerts and anySell, "SELL: Aggregate", "Structural SELL signal on {{ticker}} {{interval}}")
Student wyckoff relative strength Indicator cryptoRelative Strength Indicator crypto
Student wyckoff rs symbol USDT.D
Description
The Relative Strength (RS) Indicator compares the price performance of the current financial instrument (e.g., a stock) against another instrument (e.g., an index or another stock). It is calculated by dividing the closing price of the first instrument by the closing price of the second, then multiplying by 100. This provides a percentage ratio that shows how one instrument outperforms or underperforms another. The indicator helps traders identify strong or weak assets, spot market leaders, or evaluate an asset’s performance relative to a benchmark.
Key Features
Relative Strength Calculation: Divides the closing price of the current instrument by the closing price of the second instrument and multiplies by 100 to express the ratio as a percentage.
Simple Moving Average (SMA): Applies a customizable Simple Moving Average (default period: 14) to smooth the data and highlight trends.
Visualization: Displays the Relative Strength as a blue line, the SMA as an orange line, and colors bars (blue for rising, red for falling) to indicate changes in relative strength.
Flexibility: Allows users to select the second instrument via an input field and adjust the SMA period.
Applications
Market Comparison: Assess whether a stock is outperforming an index (e.g., S&P 500 or MOEX) to identify strong assets for investment.
Sector Analysis: Compare stocks within a sector or against a sector ETF to pinpoint leaders.
Trend Analysis: Use the rise or fall of the RS line and its SMA to gauge the strength of an asset’s trend relative to another instrument.
Trade Timing: Bar coloring helps quickly identify changes in relative strength, aiding short-term trading decisions.
Interpretation
Rising RS: Indicates the first instrument is outperforming the second (e.g., a stock growing faster than an index).
Falling RS: Suggests the first instrument is underperforming.
SMA as a Trend Filter: If the RS line is above the SMA, it may signal strengthening performance; if below, weakening performance.
Settings
Instrument 2: Ticker of the second instrument (default: QQQ).
SMA Period: Period for the Simple Moving Average (default: 14).
Notes
The indicator works on any timeframe but requires accurate ticker input for the second instrument.
Ensure data for both instruments is available on the selected timeframe for precise analysis.
Market Spiralyst [Hapharmonic]Hello, traders and creators! 👋
Market Spiralyst: Let's change the way we look at analysis, shall we? I've got to admit, I scratched my head on this for weeks, Haha :). What you're seeing is an exploration of what's possible when code meets art on financial charts. I wanted to try blending art with trading, to do something new and break away from the same old boring perspectives. The goal was to create a visual experience that's not just analytical, but also relaxing and aesthetically pleasing.
This work is intended as a guide and a design example for all developers, born from the spirit of learning and a deep love for understanding the Pine Script™ language. I hope it inspires you as much as it challenged me!
🧐 Core Concept: How It Works
Spiralyst is built on two distinct but interconnected engines:
The Generative Art Engine: At its core, this indicator uses a wide range of mathematical formulas—from simple polygons to exotic curves like Torus Knots and Spirographs—to draw beautiful, intricate shapes directly onto your chart. This provides a unique and dynamic visual backdrop for your analysis.
The Market Pulse Engine: This is where analysis meets art. The engine takes real-time data from standard technical indicators (RSI and MACD in this version) and translates their states into a simple, powerful "Pulse Score." This score directly influences the appearance of the "Scatter Points" orbiting the main shape, turning the entire artwork into a living, breathing representation of market momentum.
🎨 Unleash Your Creativity! This Is Your Playground
We've included 25 preset shapes for you... but that's just the starting point !
The real magic happens when you start tweaking the settings yourself. A tiny adjustment can make a familiar shape come alive and transform in ways you never expected.
I'm genuinely excited to see what your imagination can conjure up! If you create a shape you're particularly proud of or one that looks completely unique, I would love to see it. Please feel free to share a screenshot in the comments below. I can't wait to see what you discover! :)
Here's the default shape to get you started:
The Dynamic Scatter Points: Reading the Pulse
This is where the magic happens! The small points scattered around the main shape are not just decorative; they are the visual representation of the Market Pulse Score.
The points have two forms:
A small asterisk (`*`): Represents a low or neutral market pulse.
A larger, more prominent circle (`o`): Represents a high, strong market pulse.
Here’s how to read them:
The indicator calculates the Pulse Strength as a percentage (from 0% to 100%) based on the total score from the active indicators (RSI and MACD). This percentage determines the ratio of circles to asterisks.
High Pulse Strength (e.g., 80-100%): Most of the scatter points will transform into large circles (`o`). This indicates that the underlying momentum is strong and It could be an uptrend. It's a visual cue that the market is gaining strength and might be worth paying closer attention to.
Low Pulse Strength (e.g., 0-20%): Most or all of the scatter points will remain as small asterisks (`*`). This suggests weak, neutral, or bearish momentum.
The key takeaway: The more circles you see, the stronger the bullish momentum is according to the active indicators. Watch the artwork "breathe" as the circles appear and disappear with the market's rhythm!
And don't worry about the shape you choose; the scatter points will intelligently adapt and always follow the outer boundary of whatever beautiful form you've selected.
How to Use
Getting started with Spiralyst is simple:
Choose Your Canvas: Start by going into the settings and picking a `Shape` and `Palette` from the "Shape Selection & Palette" group that you find visually appealing. This is your canvas.
Tune Your Engine: Go to the "Market Pulse Engine" settings. Here, you can enable or disable the RSI and MACD scoring engines. Want to see the pulse based only on RSI? Just uncheck the MACD box. You can also fine-tune the parameters for each indicator to match your trading style.
Read the Vibe: Observe the scatter points. Are they mostly small asterisks or are they transforming into large, vibrant circles? Use this visual feedback as a high-level gauge of market momentum.
Check the Dashboard: For a precise breakdown, look at the "Market Pulse Analysis" table on the top-right. It gives you the exact values, scores, and total strength percentage.
Explore & Experiment: Play with the different shapes and color palettes! The core analysis remains the same, but the visual experience can be completely different.
⚙️ Settings & Customization
Spiralyst is designed to be highly customizable.
Shape Selection & Palette: This is your main control panel. Choose from over 25 unique shapes, select a color palette, and adjust the line extension style ( `extend` ) or horizontal position ( `offsetXInput` ).
scatterLabelsInput: This setting controls the total number of points (both asterisks and circles) that orbit the main shape. Think of it as adjusting the density or visual granularity of the market pulse feedback.
The Market Pulse engine will always calculate its strength as a percentage (e.g., 75%). This percentage is then applied to the `scatterLabelsInput` number you've set to determine how many points transform into large circles.
Example: If the Pulse Strength is 75% and you set this to `100` , approximately 75 points will become circles. If you increase it to `200` , approximately 150 points will transform.
A higher number provides a more detailed, high-resolution view of the market pulse, while a lower number offers a cleaner, more minimalist look. Feel free to adjust this to your personal visual preference; the underlying analytical percentage remains the same.
Market Pulse Engine:
`⚙️ RSI Settings` & `⚙️ MACD Settings`: Each indicator has its own group.
Enable Scoring: Use the checkbox at the top of each group to include or exclude that indicator from the Pulse Score calculation. If you only want to use RSI, simply uncheck "Enable MACD Scoring."
Parameters: All standard parameters (Length, Source, Fast/Slow/Signal) are fully adjustable.
Individual Shape Parameters (01-25): Each of the 25+ shapes has its own dedicated group of settings, allowing you to fine-tune every aspect of its geometry, from the number of petals on a flower to the windings of a knot. Feel free to experiment!
For Developers & Pine Script™ Enthusiasts
If you are a developer and wish to add more indicators (e.g., Stochastic, CCI, ADX), you can easily do so by following the modular structure of the code. You would primarily need to:
Add a new `PulseIndicator` object for your new indicator in the `f_getMarketPulse()` function.
Add the logic for its scoring inside the `calculateScore()` method.
The `calculateTotals()` method and the dashboard table are designed to be dynamic and will automatically adapt to include your new indicator!
One of the core design philosophies behind Spiralyst is modularity and scalability . The Market Pulse engine was intentionally built using User-Defined Types (UDTs) and an array-based structure so that adding new indicators is incredibly simple and doesn't require rewriting the main logic.
If you want to add a new indicator to the scoring engine—let's use the Stochastic Oscillator as a detailed example—you only need to modify three small sections of the code. The rest of the script, including the adaptive dashboard, will update automatically.
Here’s your step-by-step guide:
#### Step 1: Add the User Inputs
First, you need to give users control over your new indicator. Find the `USER INTERFACE: INPUTS` section and add a new group for the Stochastic settings, right after the MACD group.
Create a new group name: `string GRP_STOCH = "⚙️ Stochastic Settings"`
Add the inputs: Create a boolean to enable/disable it, and then add the necessary parameters (`%K`, `%D`, `Smooth`). Use the `active` parameter to link them to the enable/disable checkbox.
// Add this code block right after the GRP_MACD and MACD inputs
string GRP_STOCH = "⚙️ Stochastic Settings"
bool stochEnabledInput = input.bool(true, "Enable Stochastic Scoring", group = GRP_STOCH)
int stochKInput = input.int(14, "%K Length", minval=1, group = GRP_STOCH, active = stochEnabledInput)
int stochDInput = input.int(3, "%D Smoothing", minval=1, group = GRP_STOCH, active = stochEnabledInput)
int stochSmoothInput = input.int(3, "Smooth", minval=1, group = GRP_STOCH, active = stochEnabledInput)
#### Step 2: Integrate into the Pulse Engine (The "Factory")
Next, go to the `f_getMarketPulse()` function. This function acts as a "factory" that builds and configures the entire market pulse object. You need to teach it how to build your new Stochastic indicator.
Update the function signature: Add the new `stochEnabledInput` boolean as a parameter.
Calculate the indicator: Add the `ta.stoch()` calculation.
Create a `PulseIndicator` object: Create a new object for the Stochastic, populating it with its name, parameters, calculated value, and whether it's enabled.
Add it to the array: Simply add your new `stochPulse` object to the `array.from()` list.
Here is the complete, updated `f_getMarketPulse()` function :
// Factory function to create and calculate the entire MarketPulse object.
f_getMarketPulse(bool rsiEnabled, bool macdEnabled, bool stochEnabled) =>
// 1. Calculate indicator values
float rsiVal = ta.rsi(rsiSourceInput, rsiLengthInput)
= ta.macd(close, macdFastInput, macdSlowInput, macdSignalInput)
float stochVal = ta.sma(ta.stoch(close, high, low, stochKInput), stochDInput) // We'll use the main line for scoring
// 2. Create individual PulseIndicator objects
PulseIndicator rsiPulse = PulseIndicator.new("RSI", str.tostring(rsiLengthInput), rsiVal, na, 0, rsiEnabled)
PulseIndicator macdPulse = PulseIndicator.new("MACD", str.format("{0},{1},{2}", macdFastInput, macdSlowInput, macdSignalInput), macdVal, signalVal, 0, macdEnabled)
PulseIndicator stochPulse = PulseIndicator.new("Stoch", str.format("{0},{1},{2}", stochKInput, stochDInput, stochSmoothInput), stochVal, na, 0, stochEnabled)
// 3. Calculate score for each
rsiPulse.calculateScore()
macdPulse.calculateScore()
stochPulse.calculateScore()
// 4. Add the new indicator to the array
array indicatorArray = array.from(rsiPulse, macdPulse, stochPulse)
MarketPulse pulse = MarketPulse.new(indicatorArray, 0, 0.0)
// 5. Calculate final totals
pulse.calculateTotals()
pulse
// Finally, update the function call in the main orchestration section:
MarketPulse marketPulse = f_getMarketPulse(rsiEnabledInput, macdEnabledInput, stochEnabledInput)
#### Step 3: Define the Scoring Logic
Now, you need to define how the Stochastic contributes to the score. Go to the `calculateScore()` method and add a new case to the `switch` statement for your indicator.
Here's a sample scoring logic for the Stochastic, which gives a strong bullish score in oversold conditions and a strong bearish score in overbought conditions.
Here is the complete, updated `calculateScore()` method :
// Method to calculate the score for this specific indicator.
method calculateScore(PulseIndicator this) =>
if not this.isEnabled
this.score := 0
else
this.score := switch this.name
"RSI" => this.value > 65 ? 2 : this.value > 50 ? 1 : this.value < 35 ? -2 : this.value < 50 ? -1 : 0
"MACD" => this.value > this.signalValue and this.value > 0 ? 2 : this.value > this.signalValue ? 1 : this.value < this.signalValue and this.value < 0 ? -2 : this.value < this.signalValue ? -1 : 0
"Stoch" => this.value > 80 ? -2 : this.value > 50 ? 1 : this.value < 20 ? 2 : this.value < 50 ? -1 : 0
=> 0
this
#### That's It!
You're done. You do not need to modify the dashboard table or the total score calculation.
Because the `MarketPulse` object holds its indicators in an array , the rest of the script is designed to be adaptive:
The `calculateTotals()` method automatically loops through every indicator in the array to sum the scores and calculate the final percentage.
The dashboard code loops through the `enabledIndicators` array to draw the table. Since your new Stochastic indicator is now part of that array, it will appear automatically when enabled!
---
Remember, this is your playground! I'm genuinely excited to see the unique shapes you discover. If you create something you're proud of, feel free to share it in the comments below.
Happy analyzing, and may your charts be both insightful and beautiful! 💛
OSOK [AMERICANA] x [TakingProphets]OVERVIEW
OSOK is an ICT-inspired execution framework designed to help traders map the interaction between Higher-Timeframe (HTF) liquidity sweeps, qualifying Order Blocks, and Current-Timeframe (CTF) confirmation signals — all within a single, structured workflow.
By sequencing an HTF CRT → Order Block → CTF CRT model and integrating IPDA 20 equilibrium context, this tool provides traders with a visual framework for aligning intraday execution decisions with higher-timeframe intent. All plotted elements — sweeps, blocks, open prices, and equilibrium levels — update continuously in real time.
Core Concepts (ICT-Based)
Candle Range Transition (CRT) Sweeps
Bullish CRT → The second candle runs below the first candle’s low and closes back inside its range.
Bearish CRT → The second candle runs above the first candle’s high and closes back inside its range.
These patterns are frequently associated with liquidity grabs and potential directional shifts.
HTF → CTF Alignment
-Detects valid HTF CRTs (e.g., Daily CRTs derived from H4 or Weekly CRTs derived from Daily).
-Locates a qualifying Order Block within HTF Candle-2 to identify areas of potential interest.
-Waits for a modified CRT confirmation on the current timeframe before signaling possible directional bias.
IPDA 20 Equilibrium
-Plots the midpoint of the daily highest and lowest prices over the last 20 periods.
-Provides a visual reference for premium and discount pricing zones.
How OSOK Works
Step 1 — HTF CRT Check
On each new HTF candle, the script scans for a clean CRT formation on the higher aggregation (e.g., H4 → D or D → W).
If found, it tags the candles as C1, C2, and C3 and optionally shades their backgrounds for clear visual parsing.
Step 2 — HTF Order Block Identification
Searches within HTF Candle-2 for a qualifying Order Block using a compact pattern filter.
Draws a persistent OB level with clear labeling for context.
Step 3 — CTF Confirmation (Modified CRT)
Monitors your current chart timeframe for a modified CRT in alignment with the HTF setup:
For bullish setups → waits for a bullish modified CRT and close above C1’s high zone.
For bearish setups → expects a bearish modified CRT and close below C1’s low zone.
Step 4 — Real-Time Maintenance
All labels, lines, and background spans update intrabar.
If the setup invalidates — for example, if implied targets are exceeded before entry — the layout resets and waits for the next valid sequence.
KEY FEATURES
HTF CRT Visualization
-Optional “×” markers on Daily/Weekly CRT sweeps.
-Independent background shading for C1, C2, and C3.
Order Block + Open Price Context
-Draws HTF Order Block levels and plots C3 Open Price (DOP) for additional directional reference.
CTF CRT Execution Cue
-Displays a modified CRT on your current timeframe when conditions align with the HTF narrative.
IPDA 20 Line + Label
-Plots a dynamic midpoint level with an optional label for quick premium/discount context.
Optimized Drawing Engine
-Lightweight, efficient use of chart objects ensures smooth performance without visual clutter.
INPUTS
-Higher Timeframe Settings
-Toggle markers for Daily/Weekly CRT sweeps.
-Enable and color C1, C2, and C3 background spans.
-IPDA Display Options
-Control visibility, color, and line style for IPDA 20 equilibrium levels.
-Sweep, OB, and Open Price Styles
-Per-element customization for colors, widths, and labels.
BEST PRACTICES
Start on H4 or Daily to identify valid HTF CRT formations.
Confirm a qualifying OB inside Candle-2.
Drop to your execution timeframe and wait for the modified CTF CRT confirmation before acting.
Use IPDA 20 equilibrium as a reference for premium vs. discount zones.
Combine with your ICT session bias and overall market context for optimal decision-making.
Important Notes
OSOK is not a buy/sell signal provider. It’s a visual framework for understanding ICT-based execution models.
All objects reset automatically when new HTF candles form or setups invalidate.
Works on any symbol and timeframe by default, with HTF mapping set to H4 → D and D → W.
SSMT [TakingProphets]OVERVIEW
SSMT (Sequential SMT) is an ICT-inspired divergence detection tool designed to help traders identify potential intermarket divergences using Quarterly Theory, a framework popularized within the ICT community by Trader Daye and FearingICT.
The indicator segments each trading day into structured time-based quarters and scans for Sequential SMT divergences across Daily, 90-minute, and Micro-session cycles — updating continuously in real time. This allows traders to visualize when institutional liquidity shifts are most likely, based on ICT’s time-of-day models.
Built on ICT’s Quarterly Theory
At the heart of SSMT is Quarterly Theory, a time-based framework used in ICT methodology. The model divides each trading day into four predictable phases, representing shifts between accumulation, manipulation, and distribution:
Daily Quarters (4 per day)
Q1: 18:00 – 00:00 ET
Q2: 00:00 – 06:00 ET
Q3: 06:00 – 12:00 ET
Q4: 12:00 – 18:00 ET
Additionally, the indicator refines timing with two further layers:
90-Minute Quarters → Splits Asia, London, New York AM, and New York PM into structured liquidity windows, helping intraday traders monitor session-specific SMTs.
Micro Quarters → Offers a granular breakdown of each session for scalpers who require precise entry timing.
By combining these cycles, SSMT provides a contextual framework for understanding when divergences may carry the highest institutional relevance.
How SSMT Detects SMT Divergences
Sequential SMT detection in SSMT works by comparing price behavior between your selected instrument and a correlated asset (default: CME_MINI:ES1!). It monitors current vs. previous highs and lows within the active quarter and identifies divergence patterns as they form:
Bullish SMT → Your instrument forms a higher low while the correlated asset does not.
Bearish SMT → Your instrument forms a lower high while the correlated asset does not.
Divergence lines and labels are plotted directly on your chart, and these drawings update dynamically in real time as new data comes in. Historical SMTs also persist beyond quarter boundaries for added confluence in your analysis.
Key Features
Three SMT Cycles in One Tool
-Daily Cycle → Track higher-timeframe divergences around key liquidity events.
-90-Minute Cycle → Ideal for timing intraday setups within major sessions.
-Micro Cycle → Provides highly detailed precision for scalpers trading engineered sweeps.
Per-Cycle Customization
-Toggle Daily, 90-Minute, and Micro SMT independently.
-Fully customize divergence line colors, styles, widths, and optional session boxes for clarity.
Smart Auto-Labeling
-Labels automatically display the correlated symbol (e.g., “SMT w/ES”).
-Divergence drawings persist historically for reference and context.
Instant Style Updates
-Any visual changes to colors, widths, or line styles are applied immediately across both active and historical SMT drawings.
Practical Use Cases
Scalpers → Spot Micro SMTs to refine entries with session-specific precision.
Intraday Traders → Track divergences across Asia, London, and New York sessions in real time.
Swing Traders → Combine Daily SMT divergences with HTF POIs for higher confluence.
ICT Traders → Built specifically around ICT teachings, this tool provides a clear, visual framework to apply Quarterly Theory and SMT models seamlessly.
Important Notes
SSMT is not a buy/sell signal generator. It is an analytical framework designed to help traders interpret ICT-based SMT concepts visually.
Always confirm divergences within your broader market narrative and risk management rules.
HTF Candles [TakingProphets]OVERVIEW
The High Time Frame Candles indicator helps traders align their lower-timeframe executions with institutional context by projecting higher-timeframe (HTF) structure directly onto their charts. Designed for traders using ICT-inspired concepts, this tool integrates multi-timeframe candle visualization, real-time SMT divergence detection, and dynamic Open-High-Low-Close (OHLC) projections into a single customizable framework.
It’s not a signal generator — instead, it serves as an informational overlay that simplifies analysis by consolidating critical HTF insights into your intraday workflow.
WHAT THE INDICATOR DOES
Plots Up to 10 Higher Time Frame Candles
-Visualize HTF candles directly on your lower timeframe chart. The candles are offset to the right for clarity, giving you a clean and organized view of structure without cluttering price action.
HTF Close Timer
-Displays a countdown showing exactly when the current HTF candle will close — useful for timing trades around session boundaries.
Real-Time SMT Divergence Detection
-Compares price action on your main chart against a correlated asset (default: CME_MINI:ES1!) to automatically detect and label potential bearish or bullish SMT divergences. Optional alerts ensure you never miss these events.
Dynamic Candle Projections
-Continuously projects the current HTF candle’s Open, High, Low, and Close levels forward in real time. These evolving reference points can act as natural support/resistance levels and bias filters.
KEY FEATURES
Flexible Candle Rendering
-Adjust candle width, transparency, offset, and colors
-Select any HTF — from 1 minute to 1 month
-Choose customizable label sizes for clarity
Smart Time Labeling
-Automatically formats time labels based on timeframe
-Uses HH:MM for intraday and date labels for higher frames
-Supports 12-hour and 24-hour formats
SMT Divergence Tools
-Automatically detects historical and real-time SMT setups
-Customizable labels, colors, line styles, and widths
-Built-in alert conditions for bullish/bearish divergences
HTF OHLC Projections
-Plots the projected Open, High, Low, and Close levels for the current HTF candle
-Fully customizable styles, thickness, and labels for precision
INPUTS OVERVIEW
Timeframe Settings → Choose the HTF for plotting
Display Settings → Control the number of candles, offsets, label sizes, and visuals
Visual Settings → Customize bullish/bearish colors, border styles, and wick display
SMT Settings → Enable divergence detection, select correlated assets, and configure alerts
Projection Settings → Toggle OHLC projections and customize styles
ALERTS 🔔
Stay ahead of market shifts with built-in alert conditions:
Bullish SMT Divergence → Detected when main lows diverge from correlated lows
Bearish SMT Divergence → Detected when main highs diverge from correlated highs
Bullish Real-Time SMT → Highlights developing divergence as it forms
Bearish Real-Time SMT → Highlights active divergence in real time
AMD [TakingProphets]Overview
The AMD indicator is a real-time, high-resolution tool designed for traders following ICT methodology who want a clear visualization of higher timeframe (HTF) candles directly on their lower timeframe charts.
It overlays current HTF structure, including open, high, low, and close projections, allowing traders to align intraday decisions with institutional price delivery — all without switching timeframes.
Concept & Background
In ICT concepts, market behavior often follows a pattern of accumulation, manipulation, and distribution. Understanding these phases is essential for anticipating when price is likely to expand or reverse.
AMD automates this process by:
-Overlaying HTF candles directly on your lower timeframe chart.
-Projecting live levels like the current open, high, low, and close to map out evolving bias.
-Helping traders see whether price is accumulating orders, engineering liquidity sweeps, or distributing aggressively.
Key Features
Live HTF Candle Overlay
-Displays the full HTF candle — body, wicks, and directional bias — on your active chart in real time.
-Perfect for traders aligning intraday setups with broader HTF context.
Dynamic HTF Price Projections
-Plots the evolving open, high, low, and close for the current HTF candle.
-Each projection can be customized by color, style, labels, and visibility to fit your workflow.
Full Customization Control
-Adjust candle body widths, wick styles, and transparency.
-Configure projection lines and time labels in both 12h and 24h formats.
-Includes an optional Info Box showing instrument, timeframe, and session context.
Session Timing & Labeling
-Smart timestamping marks the start and close of each HTF candle.
-Helps traders anticipate potential expansions or reversals during killzones or liquidity events.
How to Use It
Select Your HTF Context
-Choose any timeframe overlay (e.g., 1H, 4H, 1D) to match your trading model.
-Monitor Live HTF Levels
-Watch how price interacts with current HTF highs, lows, and equilibrium levels in real time.
-Integrate With ICT Concepts
-Use alongside tools like SMT divergence, Order Blocks, or Liquidity Levels for confirmation and context.
-Refine Intraday Entries
-Check whether price is expanding in your favor before entering positions.
Best Practices
Combine AMD with ICT killzone sessions to monitor HTF behavior during high-liquidity periods.
Use it alongside correlated SMT divergence tools for stronger directional bias confirmation.
Who It’s For
Scalpers anchoring quick entries to HTF sentiment.
Intraday traders syncing 5m/15m setups with 1H/4H context.
Swing traders monitoring HTF ranges without switching charts.
Educators & analysts needing clean visual overlays for teaching and content creation.
Why It’s Useful
AMD doesn’t provide trading signals or predictive guarantees. Instead, it offers a clean, structured view of HTF price delivery — enabling traders to understand institutional intent as it unfolds and manage their execution with greater confidence.