Open Close Cross Strategy R5 revised by JustUncleLThis revision is an open Public release, with just some minor changes. It is a revision of the Strategy "Open Close Cross Strategy R2" originally published by @JayRogers.
*** USE AT YOUR OWN RISK ***
JayRogers : "There are drawing/painting issues in pinescript when working across resolutions/timeframes that I simply cannot fix here.. I will not be putting any further effort into developing this until such a time when workarounds become available."
NOTE: Re-painting has not been observed with the default set up, nor with Alternate resolution multiplier up to 5.
Description:
Strategy based around Open-Close Moving Average Crossovers optionally from a higher time frame.
Setup:
I have generally found that setting the strategy resolution to 3-5x that of the chart you are viewing tends to yield the best results, regardless of which MA option you may choose (if any) BUT can cause a lot of false positives - be aware of this. JustUncleL: using one of the Smoothed MA helps reduce false positives.
Don't aim for perfection. Just aim to get a reasonably snug fit with the O-C band, with good runs of green and red. JustUncleL: using SMMA (8 to 10) gives a good fit.
Option to either use basic open and close series data, or pick your poison with a wide array of MA types.
Optional Stop Loss and Target Profit for damage mitigation if desired (can be toggled on/off)
Positions get taken automatically following a crossover - which is why it's better to set the resolution of the script greater than that of your chart, so that the trades get taken sooner rather than later.
If you make use of the stops/target profit, be sure to take your time tweaking the values. Cutting it too fine will cost you profits but keep you safer, while letting them loose could lead to more draw down than you can handle.
Revsion R5 Changes by JustUncleL
Corrected cross over calculations, sometimes gave false signals.
Corrected Alternate Time calculation to allow for Daily,Weekly and Monthly charts.
Open Public release.
Revision R4 By JustUncleL
Change the way the Alternate resolution in selected, use a Multiplier of the base Time Frame instead, this makes it easy to switch between base time frames.
Added TMA and SSMA moving average options. But DEMA is still giving the best results.
Using "calc_on_every_tick=false" ensures results between back testing and real time are similar.
Added Option to Disable the coloring of the bars.
Updated default settings.
R3 Changes by JustUncleL:
Returned a simplified version of the open/close channel, it shows strength of current trend.
Added Target Profit Option.
Added option to reduce the number of historical bars, overcomes the too many trades limit error.
Simplified the strategy code.
Removed Trailing Stop option, not required and in my option does not work well in Trading View, it also gives false and unrealistic performance results in back testing.
R2 Changes by @JayRogers:
Simplified and cleaned up plotting, now just shows a Moving Average derived from the average of open/close.
Tried very hard to alleviate painting issues caused by referencing alternate resolution.
Search in scripts for "TAKE"
ECO Strategy Backtest We call this one the ECO for short, but it will be listed on the indicator list
at W. Blau’s Ergodic Candlestick Oscillator. The ECO is a momentum indicator.
It is based on candlestick bars, and takes into account the size and direction
of the candlestick "body". We have found it to be a very good momentum indicator,
and especially smooth, because it is unaffected by gaps in price, unlike many other
momentum indicators.
We like to use this indicator as an additional trend confirmation tool, or as an
alternate trend definition tool, in place of a weekly indicator. The simplest way
of using the indicator is simply to define the trend based on which side of the "0"
line the indicator is located on. If the indicator is above "0", then the trend is up.
If the indicator is below "0" then the trend is down. You can add an additional
qualifier by noting the "slope" of the indicator, and the crossing points of the slow
and fast lines. Some like to use the slope alone to define trend direction. If the
lines are sloping upward, the trend is up. Alternately, if the lines are sloping
downward, the trend is down. In this view, the point where the lines "cross" is the
point where the trend changes.
When the ECO is below the "0" line, the trend is down, and we are qualified only to
sell on new short signals from the Hi-Lo Activator. In other words, when the ECO is
above 0, we are not allowed to take short signals, and when the ECO is below 0, we
are not allowed to take long signals.
You can change long to short in the Input Settings
Please, use it only for learning or paper trading. Do not for real trading.
ECO Strategy We call this one the ECO for short, but it will be listed on the indicator list
at W. Blau’s Ergodic Candlestick Oscillator. The ECO is a momentum indicator.
It is based on candlestick bars, and takes into account the size and direction
of the candlestick "body". We have found it to be a very good momentum indicator,
and especially smooth, because it is unaffected by gaps in price, unlike many other
momentum indicators.
We like to use this indicator as an additional trend confirmation tool, or as an
alternate trend definition tool, in place of a weekly indicator. The simplest way
of using the indicator is simply to define the trend based on which side of the "0"
line the indicator is located on. If the indicator is above "0", then the trend is up.
If the indicator is below "0" then the trend is down. You can add an additional
qualifier by noting the "slope" of the indicator, and the crossing points of the slow
and fast lines. Some like to use the slope alone to define trend direction. If the
lines are sloping upward, the trend is up. Alternately, if the lines are sloping
downward, the trend is down. In this view, the point where the lines "cross" is the
point where the trend changes.
When the ECO is below the "0" line, the trend is down, and we are qualified only to
sell on new short signals from the Hi-Lo Activator. In other words, when the ECO is
above 0, we are not allowed to take short signals, and when the ECO is below 0, we
are not allowed to take long signals.
ECO (Blau`s Ergodic Candlestick Oscillator) We call this one the ECO for short, but it will be listed on the indicator list
at W. Blau’s Ergodic Candlestick Oscillator. The ECO is a momentum indicator.
It is based on candlestick bars, and takes into account the size and direction
of the candlestick "body". We have found it to be a very good momentum indicator,
and especially smooth, because it is unaffected by gaps in price, unlike many other
momentum indicators.
We like to use this indicator as an additional trend confirmation tool, or as an
alternate trend definition tool, in place of a weekly indicator. The simplest way
of using the indicator is simply to define the trend based on which side of the "0"
line the indicator is located on. If the indicator is above "0", then the trend is up.
If the indicator is below "0" then the trend is down. You can add an additional
qualifier by noting the "slope" of the indicator, and the crossing points of the slow
and fast lines. Some like to use the slope alone to define trend direction. If the
lines are sloping upward, the trend is up. Alternately, if the lines are sloping
downward, the trend is down. In this view, the point where the lines "cross" is the
point where the trend changes.
When the ECO is below the "0" line, the trend is down, and we are qualified only to
sell on new short signals from the Hi-Lo Activator. In other words, when the ECO is
above 0, we are not allowed to take short signals, and when the ECO is below 0, we
are not allowed to take long signals.
Zonas de Liquidez Pro + Puntos de GiroAnalysis of Your BTC/USDT 4H Chart
Here’s the breakdown of the liquidity zones shown on your chart and what each element means:
🔴 Resistance Zones (Red Lines)
R 126199.43 – Upper dotted line
Level: ~$126,199
Strength: = Moderate zone
Touch count: 1 touch | 1 rejection
Meaning: Weak resistance, price has only reacted here once.
Dotted line = few historical rejections.
R 111263.81 – Thick solid red line
Level: ~$111,263
Strength: = Strong zone
Touch count: 3 touches | 2 rejections
Meaning: Major resistance level, strongly defended multiple times.
Solid, thicker line = very respected zone.
R 111250.01 – Solid red line (high strength)
Level: ~$111,250
Strength: = Extremely strong
Touch count: 5 touches | 4 rejections
Meaning: This is a critical zone, heavy liquidity stacked here.
Score 19 = institutional-grade liquidity zone.
R 107508.00 – Lower dotted line
Level: ~$107,508
Strength: = Strong zone
Touch count: 4 touches | 1 rejection
Meaning: Previously acting as resistance, now above current price.
💧 “LIQ” Markers – Liquidity Grabs
The yellow LIQ tags signal liquidity grabs.
Pattern detected:
Price taps the strong resistance around $111,263
Wicks above → triggers stop-losses
Closes back below → fake breakout
High volume → institutional stop-hunting
This led directly to the strong downside move.
🎯 Current Price Context
Current price: ~$91,533
Price is below all major resistance zones
Market structure is bearish
Price is far from major liquidity areas
📉 What Happened
The 111k resistance cluster acted as a massive ceiling
Multiple failed breakouts = institutional selling
Liquidity grabs at the top → trap for late buyers
Price then dumped from $111k to $91k (≈ -18%)
🎲 Probable Scenarios
Bullish Scenario 📈
If price returns to the $107,508 zone → first resistance test
Break with volume → target $111,250
Needs a confirmed close above to validate a breakout
Bearish Scenario 📉
If demand remains weak → continuation lower
Watch for new demand zones forming below price
Rejection from $107k–$111k would confirm bearish continuation
🔍 Key Signals to Watch
Bullish:
Price revisits resistance zone
Liquidity grab below support (fake breakdown)
Strong close back above with volume
Bearish:
New lows below $91k
Volume increasing on down moves
New resistance forming overhead
💡 Trading Approach
If you're a buyer (long bias):
Wait for price to pull into a strong demand zone
Look for bullish rejection + volume
Stop-loss below the zone
If you're a seller (short bias):
Ideal entry already happened at 111k (liquidity trap)
Look for a pullback into $107k–$111k
Watch for bearish rejection signs
Conservative Approach
Don’t trade in the middle of nowhere
Wait for price to reach a liquidity zone
Liquidity zones act as magnets → safest places to form trades
🎓 Key Takeaways
High-score zones like are extremely difficult to break → respect them
Liquidity grabs signaled the reversal perfectly
Strong rejections at 111k = smart money unloading
Thicker solid lines = more reliable levels
TheStrat Failed 2 + 2 Continuation FTFC AlignmentTheStrat “Failed 2 + FTFC Alignment” spots a specific reversal/continuation pattern and layers on higher-timeframe confirmation so newer traders can focus on clean, high-probability setups.
WHAT IT LOOKS FOR
- A Failed 2 bar (price breaks the prior high/low but closes back through its open).
• Failed 2D (bullish): price takes out the previous low but finishes green.
• Failed 2U (bearish): price takes out the previous high but finishes red.
- The very next bar must be a true “2” continuation in the opposite direction (2U after a Failed 2D or 2D after a Failed 2U). This is the classic “2-2 reversal/continuation” from TheStrat playbook.
WHY IT MATTERS
When a failed 2 immediately resolves into a clean 2, it signals that buyers or sellers have seized control. These moves often become momentum pushes, especially if the broader timeframes agree.
HIGHER-TIMEFRAME FILTER
- Checks Monthly, Weekly, and 3-Day opens in real time.
- Bull signals only pass when all three are above their opens (full timeframe continuity up).
- Bear signals only pass when all three are below their opens (full timeframe continuity down).
WHAT YOU GET
- Optional labels that mark Failed 2 bars and the confirmed 2-2 signals.
- A compact “FTFC” icon on the exact bar where the continuation qualifies.
- Toggleable intrabar and bar-close alerts (select “Any alert() function call” for real-time alerts).
- A mini panel showing Monthly/Weekly/3-Day arrows so you can verify FTFC at a glance.
- Settings to require the continuation candle to be the same color as the failed bar for extra confirmation.
HOW TO USE
1. Add the script to your chart and confirm the panel arrows are aligned when icons appear.
2. Turn on the bar-close alert conditions for confirmed signals, or enable intrabar alerts for early warnings.
3. Combine the signal with your entry/stop rules (e.g., trigger on break of the signal bar and use the prior swing for risk).
This script serves as training wheels for traders learning TheStrat by automatically filtering for high-quality Failed-2 → 2 reversals that align across multiple timeframes.
Bitcoin Relative Macro StrengthBTC Relative Macro Strength
Overview
The BTC Relative Macro Strength indicator measures Bitcoin's price strength relative to the global macro environment. By tracking deviations from the macro trend, it identifies potentially overvalued and undervalued market phases.
The global macro trend is derived by multiplying the ISM PMI (a widely-used proxy for the business cycle) by a simplified measure of global liquidity.
Calculations
Global Liquidity = Fed Balance Sheet − Reverse Repo − Treasury General Account + U.S. M2 + China M2
Global Macro Trend = ISM PMI × Global Liquidity
Understanding the Global Macro Trend
The global macro trend plot combines the ebb and flow of global liquidity with the cyclical patterns of the business cycle. The resulting composite exhibits strong directional correlation with Bitcoin—or more precisely, Bitcoin appears to move in lockstep with liquidity conditions and business cycle phases.
This relationship has strengthened notably since COVID, likely because Bitcoin's growing market capitalization has increased its exposure to macro forces.
The takeaway is that Bitcoin is acutely sensitive to growth in the money supply (it trends with liquidity expansion) and oscillates with the phases of the business cycle.
Indicator Components
📊 Histogram: BTC/Macro Change
Displays the rolling percentage change of Bitcoin's price relative to the global macro trend.
High values: Bitcoin is outpacing macro conditions (potentially overvalued)
Low values: Bitcoin is underperforming macro conditions (potentially undervalued)
Color scheme:
🟢 Green = Positive deviation
🔴 Red = Negative deviation
📈 Macro Slope Line
Plots the scaled percentage change of the global macro trend itself.
Color scheme:
🔵 Teal = BULLISH (slope positive and rising)
⚪ Gray = NEUTRAL (slope and trend disagree)
🟣 Pink = BEARISH (slope negative and falling)
FieldDescription
BTC/Macro Change : Percentage change of Bitcoin's price vs. the Global Macro Trend (default: 21-bar average)
Macro Trend : Composite assessment combining slope direction and trend momentum. Reads BULLISH when both align upward, BEARISH when both align downward, NEUTRAL when they disagree
Macro Slope : The global macro trend's average slope expressed as a percentage
BTC Valuation : Relative valuation category based on BTC/Macro deviation (Extreme Premium → Extreme Discount)
BTC Price : Current Bitcoin price
How to Use
This indicator is primarily useful for identifying market phases where Bitcoin's price has diverged from the global macro trend.
Identify extremes : Look for periods when the histogram reaches elevated positive or negative levels
Assess valuation : Use the BTC Valuation reading to gauge relative over/undervaluation
Confirm with trend : Check whether macro conditions support or contradict the current price level
Mean reversion : Consider that significant deviations from trend historically tend to revert
Note: This indicator identifies relative valuation based on macro conditions—it does not predict price direction or timing.
Settings
Lookback Period - 21 bars - Number of bars for calculating rolling averages
Macro Slope Scale - 3.0 - Multiplier for macro slope line visibility
BifaneiroSinaleiro V3 ULTIMATEBifaneiroSinaleiro V3 ULTIMATE - Complete ICT Analysis System & Signal Generator
This isn't just an indicator - it's your 24/7 ICT analyst that does the manual work for you.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔥 WHAT IT DOES FOR YOU:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Marks ALL ICT Concepts Automatically:
- Fair Value Gaps (LTF + HTF with priority)
- Market Structure (BOS/CHoCH in real-time)
- Breaker Blocks (validated with volume + killzone)
- Liquidity Sweeps (Asian High/Low runs)
- Premium/Discount Arrays + OTE Zones
- Institutional Sessions (London, NY Silver Bullets)
✅ Advanced Pattern Recognition:
- Turtle Soup (sweep + reversal)
- Unicorn Model (sweep → BOS → FVG)
- SMT Divergences (monitors correlated pairs)
- PO3/AMD Phases (Accumulation → Manipulation → Distribution)
✅ Intelligent Scoring System:
- 12+ confluence factors analyzed
- Minimum score 12 for signals (configurable)
- Score 20+ = EXTREME (enables 2nd trade in session)
- Visual score display on every signal
✅ Professional Trade Management:
- 1 trade per session (London, NY AM, NY PM) = max 3/day
- EXTREME mode: 2 trades per session = max 6/day
- Automatic stop loss (session range-based)
- Dynamic take profit (score-adjusted multiplier)
- Auto breakeven after 2.5x move
- EOD close (23:59) with P&L label
- Weekend close (Fri 23:55) with P&L label
✅ 100% ICT Pure Methodology:
- NO EMAs, NO ATR, NO lagging indicators
- Pure price action: High/Low/Range only
- HTF confirmation via Premium/Discount (not EMAs!)
- Stop loss via Asian Range (not ATR!)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚡ WHY IT'S DIFFERENT:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Traditional indicators show 1-2 concepts. This shows 10+ simultaneously.
Manual ICT takes 2-3 hours per session. This does it in milliseconds.
Other systems guess. This scores with objective confluence.
You save hours daily. You trade better. You profit more consistently.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 WHAT YOU GET:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- Real-time dashboard (scores, confluences, structure)
- Precision signals (only in killzones, only with confluences)
- Trade tracking (win rate, RR, P&L by session)
- Multi-timeframe analysis (automatic)
- News block filter (configurable)
- Full customization (colors, thresholds, sessions)
- Comprehensive alerts (8+ types)
Works on: Forex, Indices, Commodities, Crypto
Best on: 1m-5m for execution, 15m+ for swing
Timezone: Configured for CET (UTC+1), easily adjustable
⚠️ This is a professional tool requiring ICT/SMC understanding.
Not magic - it's methodology, automated.
🚀 Stop drawing. Start trading. Add to chart now.
Ellipse Price Action Indicator v2 (Upgraded)
This upgraded Ellipse Price Action Indicator (EPAI v2) to take high-accuracy trades.
I am explaining it as if you are looking at the chart step by step, so you will understand exactly:
-When to buy
-When to
-When to avoid
-How to read Strength Meter
-How Ellipse zones work
⭐ 1. THE BASICS — What This Indicator Actually Does
This indicator tracks:
✔ The “Elliptical Path” of price
Like a planet revolving around the Sun, price “oscillates” around a center.
The indicator detects this hidden mathematical path using:
Two Focus Points (Fast MA & Slow MA)
Curved Ellipse boundaries
Compression of price
Momentum of trend
Breakout zones
⭐ 2. UNDERSTANDING THE 3 ZONES
🔴 UPPER ZONE = Sell Zone
Price is near the upper ellipse boundary → overbought space.
🟢 LOWER ZONE = Buy Zone
Price near lower ellipse boundary → oversold space.
🔵 CENTRAL ZONE = No Trade Zone
Price swinging inside the ellipse center → noise.
Only trade in UPPER or LOWER zones.
Never in the central zone.
⭐ 3. THE MOST IMPORTANT PART — Strength Meter v2
Strength Meter v2 (0 to 100%) is the core filter.
✔ Above 70% → High winning probability (take trade)
✔ 60–70% → Medium probability (trade if confident)
❌ Below 60% → Avoid trade
Strength combines:
Ellipse compression
Momentum slope
Price position curve
Eccentricity
Trend direction
This alone removes 70% bad trades.
⭐ 4. BUY SETUP (Exact Rules)
You get a BUY only if all conditions match:
① Price goes to lower ellipse zone
② Compression is ON (ellipse is tight)
③ Momentum slope direction = UP
④ Focus Lines Cross Bullish (Fast > Slow)
⑤ Strength v2 ≥ your threshold (default 60%)
⑥ A BUY signal prints (triangle UP)
When these align →
🟢 BUY with high accuracy
Best Accuracy Buy is:
Price in lower zone
Strength ≥ 0.75
Slope UP
Ellipse compressed
⭐ 5. SELL SETUP (Exact Rules)
Same logic reversed:
① Price in upper ellipse zone
② Compression ON
③ Momentum slope DOWN
④ Focus Lines cross bearish (Fast < Slow)
⑤ Strength v2 ≥ threshold
⑥ SELL signal prints (triangle DOWN)
This means:
🔴 SELL with high accuracy
Best Accuracy Sell is:
Price in upper zone
Strength ≥ 0.75
Slope DOWN
Ellipse compressed
⭐ 6. BREAKOUT TRADES (Optional but powerful)
When price breaks above/below ellipse:
🔸 Upper Breakout → SELL (if strength strong)
🔸 Lower Breakout → BUY (if strength strong)
Breakout signals are marked by orange arrows.
Breakouts are taken only if:
Strength v2 > 50%
Slope supports breakout
Compression exists before breakout
Breakout trades catch trend continuation.
⭐ 7. HOW TO CONFIRM A STRONG TRADE
Look at the table on the chart:
✔ Strength v2 ≥ 70% (GREEN)
✔ Compression = GREEN
✔ Slope direction = UP (for buy) or DOWN (for sell)
✔ Zone = LOWER or UPPER
✔ Eccentricity = LOW (<0.5 means smooth trend)
If these line up →
⭐ High-probability entry.
⭐ 8. WHEN YOU SHOULD NOT TRADE
❌ If price is in Central Zone
❌ Strength < 60
❌ No compression detected
❌ Slope is flat or against direction
❌ Only one condition is matching
❌ Eccentricity is too large
(Big ellipse = unpredictable swings)
⭐ 9. What Is the Accuracy Level?
In trending markets → 75% to 85% accuracy
In ranging markets → 50% (use compression filter to avoid)
The indicator is designed to avoid bad market conditions automatically.
⭐ 10. BEST TIMEFRAMES
✔ 5m, 15m, 1H → Intraday
✔ 4H, 1D → Swing Trading
✔ NOT recommended below 1m timeframe
⭐ SUMMARY (EASY VERSION)
🟢 BUY:
Lower zone + compression + bullish slope + strong focus cross + strength ≥ 60
🔴 SELL:
Upper zone + compression + bearish slope + strong focus cross + strength ≥ 60
🟠 Breakout:
Upper/lower breakout + strength ≥ 50
🔵 Avoid:
Central zone or weak strength
BTC Dual Cycle: Stats DashboardOverview
"Price takes the elevator down, but takes the stairs up."
This indicator is a macro-analysis tool designed to visualize the true duration of Bitcoin’s market cycles. Unlike standard oscillators that focus on short-term price action, the Macro Cycle Tracker filters out the noise to answer two fundamental questions:
Are we in a phase of Expansion (Price Discovery)?
Are we in a phase of Recovery (Repairing the damage of a crash)?
It visually separates the market into two distinct regimes based on a configurable drawdown threshold (default: -50%) and provides real-time statistics on how long these phases historically last.
How It Works
The script tracks the All-Time High (ATH) and divides market history into two colored zones:
🟢 The Green Zone (Expansion / Price Discovery)
Trigger: Starts immediately when Bitcoin breaks the previous ATH.
Meaning: The market is healthy, profitable, and exploring new valuation levels.
End: The zone ends when price drops by 50% (configurable) from the cycle top.
🔴 The Red Zone (Recovery / Capitulation)
Trigger: Starts when price drops below the 50% threshold from the peak.
Meaning: The asset is "underwater." This zone remains active persistently—even during relief rallies—until the previous ATH is fully reclaimed.
Philosophy: A cycle is not over until the damage is repaired.
Key Features
Cycle Timer: Displays the exact number of days passed for every historical cycle directly on the chart.
Live Counter: Shows the current duration of the active phase (e.g., "ZONE GREEN: 450 Days...").
Statistical Dashboard: A table in the bottom-right corner automatically calculates the Mean and Median duration (in days) for both Green and Red phases. This allows you to compare the current cycle against historical averages.
How to Use
For Investors (HODLers): Use the Red Zone to understand the "Time Cost" of a bear market. It helps visualize that recovery takes patience and that price action below the old ATH is merely accumulation.
For Analysts: Use the Dashboard statistics to project potential cycle turning points based on historical median durations.
Settings
Drop Percent (%): Default is 50%. This defines the "Crash" threshold. You can adjust this to 20% or 30% for more sensitive cycle detection.
Text Size: Adjust the size of the dashboard text to fit your screen resolution.
Disclaimer: This tool is for educational purposes only and does not constitute financial advice. Past performance is not indicative of future results.
Daily Separator_Yoot HobbizSimply helps you separate each trading day — a clean, visual indicator that marks daily sessions so you can read price action faster and stay focused on what really matters.
A simple indicator that clearly separates each trading day, making your charts easier to read and your decisions easier to take.
Macketings 1min ScalpingThis is a hyper-reactive scalping strategy designed for the 1-minute chart. It utilizes a strict four-EMA hierarchy (80/90/340/500) to ensure trades are only taken in the strongest aligned market trend. The strategy is built to be extremely tight on risk and focuses on capturing the immediate, high-momentum swing that follows a confirmed EMA retest or breakout.
Key Mechanics (How it Works):
Strict Trend Alignment: Entry is only permitted when the faster EMA band (80/90) and the price action are correctly aligned with the slow trend (340/500).
Long: EMA 80/90 must be above EMA 340/500, AND EMA 340 must be above EMA 500. (And vice-versa for Short.)
Expanded Retest Entry: The strategy waits for the price to retest or briefly enter the 80/90 band, then immediately enters upon the confirmed momentum breakout from that band.
Dynamic Risk Management (Tight Ride): The strategy is engineered to ride the wave aggressively while protecting capital immediately:
Extremely Tight Initial Stop Loss (0.2% default): Limits initial risk instantly.
Break-Even Security: Once profit hits 0.3%, the Stop Loss is automatically trailed to secure 0.2% profit (a risk-free trade).
Aggressive Exit Logic: Positions are closed not only upon hitting the Take Profit target (2.5%) but also immediately if the 80/90 EMA band crosses the 340 EMA, signaling a critical loss of momentum.
Disclaimer:
This strategy requires high-liquidity instruments and is best used on low timeframes (1-minute) due to its dependency on fast momentum shifts and tight stops. Backtesting and forward testing are crucial before deployment.
Reversal Correlation Pressure [OmegaTools]Reversal Correlation Pressure is a quantitative regime-detection and signal-filtering framework designed to enhance both reversal timing and breakout validation across intraday and multi-session markets.
It is built for discretionary and systematic traders who require a statistically grounded filter capable of adapting to changing market conditions in real time.
1. Purpose and Overview
Market conditions constantly rotate through phases of expansion, contraction, trend persistence, and noise-driven mean reversion. Many strategies break down not because the signal is wrong, but because the regime is unsuitable.
This indicator solves that structural problem.
The tool measures the evolving correlation relationship between highs and lows — a robust proxy for how “organized” or “fragmented” price discovery currently is — and transforms it into a regime pressure reading. This reading is then used as the core variable to validate or filter reversal and breakout opportunities.
Combined with an internal performance-based filter that learns from its past signals, the indicator becomes a dynamic decision engine: it highlights only the signals that statistically perform best under the current market regime.
2. Core Components
2.1 Correlation-Based Regime Mapping
The relationship between highs and lows contains valuable information about market structure:
High correlation generally corresponds to coherent, directional markets where momentum and breakouts tend to prevail.
Low or unstable correlation often appears in overlapping, rotational phases where price oscillates and mean-reversion behavior dominates.
The indicator continuously evaluates this correlation, normalizes it statistically, and displays it as a pressure histogram:
Higher values indicate regimes favorable to trend continuation or momentum breakouts.
Lower values indicate regimes where reversals, pullbacks, and fade setups historically perform better.
This regime mapping is the foundation upon which the adaptive filter operates.
2.2 Reversal Stress & Breakout Stress Signaling
Raw directional opportunities are identified using statistically significant deviations from short-term equilibrium (overbought/oversold dynamics).
However, unlike traditional mean-reversion or breakout tools, signals here are not automatically taken. They must first be validated by the regime framework and then compared against the performance of similar past setups.
This dual evaluation sharply reduces the noise associated with reversal attempts during strong trends, while also preventing breakout attempts during choppy, anti-directional conditions.
2.3 Adaptive Regime-Selection Backtester
A key innovation of this indicator is its embedded micro-backtester, which continuously tracks how reversal or breakout signals have performed under each correlation regime.
The system evaluates two competing hypotheses:
Signals perform better during high-correlation regimes.
Signals perform better during low-correlation or neutral regimes.
For each new trigger, the indicator looks back at a rolling sample of past setups and measures short-term performance under both regimes. It then automatically selects the regime that currently demonstrates the superior historical edge.
In other words, the indicator:
Learns from recent market behavior
Determines which regime supports reversals
Determines which regime supports breakouts
Applies the optimal filter in real time
Highlights only the signals that historically outperformed under similar conditions
This creates a dynamic, statistically supervised approach to signal filtering — a substantial improvement over static or fixed-threshold systems.
2.4 Visual Components
To support rapid decision-making:
Correlation Pressure Histogram:
Encodes regime strength through a gradient-based color system, transitioning from neutral contexts into strong structural phases.
Directional Markers:
Visual arrows appear when a signal passes all filters and conditions.
Bar Coloring:
Bars can optionally be recolored to reflect active bullish or bearish bias after the adaptive filter approves a signal.
These components integrate seamlessly to give the trader a concise but complete view of the underlying conditions.
3. How to Use This Indicator
3.1 Identifying Regimes
The histogram is the anchor:
High, brightly colored columns suggest trend-friendly behavior where breakout alignment and directional follow-through have historically been stronger.
Low or muted columns suggest mean-reversion contexts where counter-trend opportunities and reversal setups gain reliability.
3.2 Filtering Signals
The indicator automatically decides whether a reversal or breakout trigger should be respected based on:
the current correlation regime,
the learned performance of recent signals under similar conditions, and
the directional stress detected in price.
The user does not need to adjust anything manually.
3.3 Integration with Other Tools
This indicator works best when combined with:
VWAP or session levels
Market internals and breadth metrics
Volume, order flow, or delta-based tools
Local structural frameworks (support/resistance, liquidity highs and lows)
Its strength is in telling you when your other signals matter and when they should be ignored.
4. Strengths of the Framework
Automatically adapts to changing micro-regimes
Reduces false reversals during strong trends
Avoids false breakouts in overlapping, rotational markets
Learns from recent historical performance
Provides a statistically driven confirmation layer
Works on all liquid assets and timeframes
Suitable for both discretionary and automated environments
5. Disclaimer
This indicator is provided strictly for educational and analytical purposes.
It does not constitute trading advice, investment guidance, or a recommendation to buy or sell any financial instrument.
Past performance of any statistical filter or adaptive method does not guarantee future results.
All trading involves significant risk, and users are responsible for their own decisions and risk management.
By using this indicator, you acknowledge that you are fully responsible for your trading activity.
Golden BOS Strategy - ChecklistA clean, mechanical on-chart checklist designed for multi-timeframe traders using the Golden BOS / Institutional Retracement Framework.
This tool helps you stay disciplined by tracking each requirement of the strategy in real time:
Included Criteria
4H Bias: Bullish or bearish macro structure
1H Structure: Push/pull phase + golden zone retracement
5M Entry Model:
Break of Structure (BOS)
5M golden zone retracement
POI validation (OB/FVG/Breaker)
Final micro BOS or rejection confirmation
Risk Filters:
Session validity (London / NY)
Red news avoidance
Stop-loss placement check
Liquidity-based target confirmation
Purpose
This overlay ensures every trade meets strict criteria before execution, removing emotion and improvisation. Ideal for backtesting, forward testing, and staying consistent during live market conditions.
Golden BOS Strategy — Description
The Golden BOS Strategy is a structured, multi-timeframe trading system designed to capture high-probability continuation moves during London and New York sessions. The strategy combines institutional concepts with Fibonacci-based retracements to identify discounted entry zones aligned with higher-timeframe direction.
Using the 4H timeframe, traders establish the daily macro bias and identify the dominant trend. The 1H chart is then used to confirm the current phase of market structure, distinguishing between impulsive “push” moves and corrective “pullback” phases. A Fibonacci retracement is applied to the most recent 1H impulse leg to define a high-value discount or premium zone where entries become valid.
Execution takes place on the 5-minute chart. Once price reaches the 1H golden zone (61.8–78.6%), a Break of Structure (BOS) is required to confirm a shift in short-term momentum. A second Fibonacci retracement is then drawn on the 5M impulse leg that caused the BOS, and price must retrace back into the 5M golden zone. Traders refine their entry using a confluence point of interest (POI) such as a Fair Value Gap (FVG), Order Block, Breaker Block, or Inverse FVG, ideally accompanied by a final micro BOS or rejection candle.
Risk management is strict and rule-driven. Stop loss is placed beyond the extreme wick of the POI, while take-profit targets are set at logical liquidity pools in the direction of the higher-timeframe trend. The strategy avoids red-folder news and only allows trades during active sessions to ensure optimal volatility and reliability.
The Golden BOS Strategy is designed to impose discipline, reduce discretionary errors, and give traders a repeatable, mechanical framework for navigating trending markets with precision.
NormalizedIndicatorsNormalizedIndicators Library - Comprehensive Trend Normalization & Pre-Calibrated Systems
Overview
The NormalizedIndicators Library is an advanced Pine Script™ collection that provides normalized trend-following indicators, calculation functions, and pre-calibrated consensus systems for technical analysis. This library extends beyond simple indicator normalization by offering battle-tested, optimized parameter sets for specific assets and timeframes.
The main advantage lies in its dual functionality:
Individual normalized indicators with standardized outputs (1 = bullish, -1 = bearish, 0 = neutral)
Pre-calibrated consensus functions that combine multiple indicators with asset-specific optimizations
This enables traders to either build custom strategies using individual indicators or leverage pre-optimized systems designed for specific markets.
📊 Library Structure
The library is organized into three main sections:
1. Trend-Following Indicators
Individual indicators normalized to standard output format
2. Calculation Indicators
Statistical and mathematical analysis functions
3. Pre-Calibrated Systems ⭐ NEW
Asset-specific consensus configurations with optimized parameters
🔄 Trend-Following Indicators
Stationary Indicators
These oscillate around a fixed value and are not bound to price.
TSI() - True Strength Index ⭐ NEW
Source: TradingView
Parameters:
price: Price source
long: Long smoothing period
short: Short smoothing period
signal: Signal line period
Logic: Double-smoothed momentum oscillator comparing TSI to its signal line
Signal:
1 (bullish): TSI ≥ TSI EMA
0 (bearish): TSI < TSI EMA
Use Case: Momentum confirmation with trend direction
SMI() - Stochastic Momentum Index ⭐ NEW
Source: TradingView
Parameters:
src: Price source
lengthK: Stochastic period
lengthD: Smoothing period
lengthEMA: Signal line period
Logic: Enhanced stochastic that measures price position relative to midpoint of high/low range
Signal:
1 (bullish): SMI ≥ SMI EMA
0 (bearish): SMI < SMI EMA
Use Case: Overbought/oversold with momentum direction
BBPct() - Bollinger Bands Percent
Source: Algoalpha X Sushiboi77
Parameters:
Length: Period for Bollinger Bands
Factor: Standard deviation multiplier
Source: Price source (typical: close)
Logic: Calculates the position of price within the Bollinger Bands as a percentage
Signal:
1 (bullish): when positionBetweenBands > 50
-1 (bearish): when positionBetweenBands ≤ 50
Special Feature: Uses an array to store historical standard deviations for additional analysis
RSI() - Relative Strength Index
Source: TradingView
Parameters:
len: RSI period
src: Price source
smaLen: Smoothing period for RSI
Logic: Classic RSI with additional SMA smoothing
Signal:
1 (bullish): RSI-SMA > 50
-1 (bearish): RSI-SMA < 50
0 (neutral): RSI-SMA = 50
Non-Stationary Indicators
These follow price movement and have no fixed boundaries.
NorosTrendRibbonSMA() & NorosTrendRibbonEMA()
Source: ROBO_Trading
Parameters:
Length: Moving average and channel period
Source: Price source
Logic: Creates a price channel based on the highest/lowest MA value over a specified period
Signal:
1 (bullish): Price breaks above upper band
-1 (bearish): Price breaks below lower band
0 (neutral): Price within channel (maintains last state)
Difference: SMA version uses simple moving averages, EMA version uses exponential
TrendBands()
Source: starlord_xrp
Parameters: src (price source)
Logic: Uses 12 EMAs (9-30 period) and checks if all are rising or falling simultaneously
Signal:
1 (bullish): All 12 EMAs are rising
-1 (bearish): All 12 EMAs are falling
0 (neutral): Mixed signals
Special Feature: Very strict conditions - extremely strong trend filter
Vidya() - Variable Index Dynamic Average
Source: loxx
Parameters:
source: Price source
length: Main period
histLength: Historical period for volatility calculation
Logic: Adaptive moving average that adjusts to volatility
Signal:
1 (bullish): VIDYA is rising
-1 (bearish): VIDYA is falling
VZO() - Volume Zone Oscillator
Parameters:
source: Price source
length: Smoothing period
volumesource: Volume data source
Logic: Combines price and volume direction, calculates the ratio of directional volume to total volume
Signal:
1 (bullish): VZO > 14.9
-1 (bearish): VZO < -14.9
0 (neutral): VZO between -14.9 and 14.9
TrendContinuation()
Source: AlgoAlpha
Parameters:
malen: First HMA period
malen1: Second HMA period
theclose: Price source
Logic: Uses two Hull Moving Averages for trend assessment with neutrality detection
Signal:
1 (bullish): Uptrend without divergence
-1 (bearish): Downtrend without divergence
0 (neutral): Trend and longer MA diverge
LeonidasTrendFollowingSystem()
Source: LeonidasCrypto
Parameters:
src: Price source
shortlen: Short EMA period
keylen: Long EMA period
Logic: Simple dual EMA crossover system
Signal:
1 (bullish): Short EMA < Key EMA
-1 (bearish): Short EMA ≥ Key EMA
ysanturtrendfollower()
Source: ysantur
Parameters:
src: Price source
depth: Depth of Fibonacci weighting
smooth: Smoothing period
bias: Percentage bias adjustment
Logic: Complex system with Fibonacci-weighted moving averages and bias bands
Signal:
1 (bullish): Weighted MA > smoothed MA (with upward bias)
-1 (bearish): Weighted MA < smoothed MA (with downward bias)
0 (neutral): Within bias zone
TRAMA() - Trend Regularity Adaptive Moving Average
Source: LuxAlgo
Parameters:
src: Price source
length: Adaptation period
Logic: Adapts to trend regularity - accelerates in stable trends, slows in consolidations
Signal:
1 (bullish): Price > TRAMA
-1 (bearish): Price < TRAMA
0 (neutral): Price = TRAMA
HullSuite()
Source: InSilico
Parameters:
_length: Base period
src: Price source
_lengthMult: Length multiplier
Logic: Uses Hull Moving Average with lagged comparisons for trend determination
Signal:
1 (bullish): Current Hull > Hull 2 bars ago
-1 (bearish): Current Hull < Hull 2 bars ago
0 (neutral): No change
STC() - Schaff Trend Cycle
Source: shayankm (described as "Better MACD")
Parameters:
length: Cycle period
fastLength: Fast MACD period
slowLength: Slow MACD period
src: Price source
Logic: Combines MACD concepts with stochastic normalization for early trend signals
Signal:
1 (bullish): STC is rising
-1 (bearish): STC is falling
🧮 Calculation Indicators
These functions provide specialized mathematical calculations for advanced analysis.
LCorrelation() - Long-term Correlation
Creator: unicorpusstocks
Parameters:
Input: First time series
Compare: Second time series
Logic: Calculates the average of correlations across 6 different periods (30, 60, 90, 120, 150, 180)
Returns: Correlation value between -1 and 1
Application: Long-term relationship analysis between assets, markets, or indicators
MCorrelation() - Medium-term Correlation
Creator: unicorpusstocks
Parameters:
Input: First time series
Compare: Second time series
Logic: Calculates the average of correlations across 6 different periods (15, 30, 45, 60, 75, 90)
Returns: Correlation value between -1 and 1
Application: Medium-term relationship analysis with higher sensitivity
assetBeta() - Beta Coefficient
Creator: unicorpusstocks
Parameters:
measuredSymbol: The asset to be measured
baseSymbol: The reference asset (e.g., market index)
Logic:
Calculates Beta across 4 different time horizons (50, 100, 150, 200 periods)
Beta = Correlation × (Asset Standard Deviation / Market Standard Deviation)
Returns the average of all 4 Beta values
Returns: Beta value (typically 0-2, can be higher/lower)
Interpretation:
Beta = 1: Asset moves in sync with the market
Beta > 1: Asset more volatile than market
Beta < 1: Asset less volatile than market
Beta < 0: Asset moves inversely to the market
🎯 Pre-Calibrated Systems ⭐ NEW FEATURE
These are ready-to-use consensus functions with optimized parameters for specific assets and timeframes. Each calibration has been fine-tuned through extensive backtesting to provide optimal performance for its target market.
Universal Calibrations
virtual_4d_cal(src) - Virtual/General 4-Day Timeframe
Use Case: General purpose 4-day chart analysis
Optimized For: Broad crypto market on 4D timeframe
Indicators Used: BBPct, Noro's, RSI, VIDYA, HullSuite, TrendContinuation, Leonidas, TRAMA
Characteristics: Balanced sensitivity for swing trading
virtual_1d_cal(src) - Virtual/General 1-Day Timeframe
Use Case: General purpose daily chart analysis
Optimized For: Broad crypto market on 1D timeframe
Indicators Used: BBPct, Noro's, RSI, VIDYA, HullSuite, TrendContinuation, Leonidas, TRAMA
Characteristics: Standard daily trading parameters
Cryptocurrency Specific
sui_cal(src) - SUI Ecosystem Tokens
Use Case: Tokens in the SUI blockchain ecosystem
Timeframe: 1D
Characteristics: Fast-response parameters for high volatility projects
deep_1d_cal(src) - DEEP Token Daily
Use Case: Deepbook (DEEP) token analysis
Timeframe: 1D
Characteristics: Tuned for liquidity protocol token behavior
wal_1d_cal(src) - WAL Token Daily
Use Case: Specific for WAL token
Timeframe: 1D
Characteristics: Mid-range sensitivity parameters
sns_1d_cal(src) - SNS Token Daily
Use Case: Specific for SNS token
Timeframe: 1D
Characteristics: Balanced parameters for DeFi tokens
meme_cal(src) - Meme Coin Calibration
Use Case: Highly volatile meme coins
Timeframe: Various
Characteristics: Wider parameters to handle extreme volatility
Warning: Meme coins carry extreme risk
base_cal(src) - BASE Ecosystem Tokens
Use Case: Tokens on the BASE blockchain
Timeframe: Various
Characteristics: Optimized for L2 ecosystem tokens
Solana Ecosystem
sol_4d_cal(src) - Solana 4-Day
Use Case: SOL token on 4-day charts
Characteristics: Responsive parameters for major L1 blockchain
sol_meme_4d_cal(src) - Solana Meme Coins 4-Day
Use Case: Meme coins on Solana blockchain
Timeframe: 4D
Characteristics: Handles high volatility of Solana meme sector
Ethereum Ecosystem
eth_4d_cal(src) - Ethereum 4-Day
Use Case: ETH and major ERC-20 tokens
Timeframe: 4D
Indicators Used: BBPct, Noro's, RSI, TSI, HullSuite, TrendContinuation, Leonidas, SMI
Special: Uses TSI and SMI instead of VIDYA and TRAMA
Characteristics: Tuned for Ethereum's market cycles
Bitcoin
btc_4d_cal(src) - Bitcoin 4-Day
Use Case: Bitcoin on 4-day charts
Timeframe: 4D
Characteristics: Slower, smoother parameters for the most established crypto asset
Notes: Conservative parameters suitable for position trading
Traditional Markets
qqq_4d_cal(src) - QQQ (Nasdaq-100 ETF) 4-Day
Use Case: QQQ ETF and tech-heavy indices
Timeframe: 4D
Characteristics: Largest parameter sets reflecting lower volatility of traditional markets
Notes: Can be adapted for similar large-cap tech indices
💡 Usage Examples
Example 1: Using Pre-Calibrated System
pinescriptimport unicorpusstocks/NormalizedIndicators/1 as lib
// Simple one-line implementation for Bitcoin
btcSignal = lib.btc_4d_cal(close)
// Trading logic
longCondition = btcSignal > 0.5
shortCondition = btcSignal < -0.5
// Plot
plot(btcSignal, "BTC 4D Consensus", color.orange)
Example 2: Custom Multi-Indicator Consensus
pinescriptimport unicorpusstocks/NormalizedIndicators/1 as lib
// Build your own combination
signal1 = lib.BBPct(20, 2.0, close)
signal2 = lib.RSI(14, close, 5)
signal3 = lib.TRAMA(close, 50)
signal4 = lib.TSI(close, 25, 13, 13)
// Custom consensus
customConsensus = math.avg(signal1, signal2, signal3, signal4)
plot(customConsensus, "Custom Consensus", color.blue)
Example 3: Asset-Specific Strategy Switching
pinescriptimport unicorpusstocks/NormalizedIndicators/1 as lib
// Automatically use the right calibration
signal = switch syminfo.ticker
"BTCUSD" => lib.btc_4d_cal(close)
"ETHUSD" => lib.eth_4d_cal(close)
"SOLUSD" => lib.sol_4d_cal(close)
"QQQ" => lib.qqq_4d_cal(close)
=> lib.virtual_4d_cal(close) // Default
plot(signal, "Auto-Calibrated Signal", color.orange)
Example 4: Correlation-Filtered Trading
pinescriptimport unicorpusstocks/NormalizedIndicators/1 as lib
// Only trade when strong correlation with market exists
spy = request.security("SPY", timeframe.period, close)
correlation = lib.MCorrelation(close, spy)
trendSignal = lib.virtual_1d_cal(close)
// Only signals with positive market correlation
tradeBuy = trendSignal > 0.5 and correlation > 0.5
tradeSell = trendSignal < -0.5 and correlation > 0.5
Example 5: Beta-Adjusted Position Sizing
pinescriptimport unicorpusstocks/NormalizedIndicators/1 as lib
spy = request.security("SPY", timeframe.period, close)
beta = lib.assetBeta(close, spy)
// Adjust position size based on Beta
basePositionSize = 100
adjustedSize = basePositionSize / beta // Less size with high Beta
// Use with calibrated signal
signal = lib.qqq_4d_cal(close)
🎯 Choosing the Right Calibration
Decision Tree
1. What asset are you trading?
Bitcoin → btc_4d_cal()
Ethereum/ERC-20 → eth_4d_cal()
Solana → sol_4d_cal()
Solana memes → sol_meme_4d_cal()
SUI ecosystem → sui_cal()
BASE ecosystem → base_cal()
Meme coins (any chain) → meme_cal()
QQQ/Tech indices → qqq_4d_cal()
Other/General → virtual_4d_cal() or virtual_1d_cal()
2. What timeframe?
Most calibrations are optimized for 4D (4-day) or 1D (daily)
For other timeframes, start with virtual calibrations and adjust
3. What's the asset's volatility?
High volatility (memes, new tokens) → Use meme_cal() or similar
Medium volatility (established alts) → Use specific calibrations
Low volatility (BTC, major indices) → Use btc_4d_cal() or qqq_4d_cal()
⚙️ Technical Details
Normalization Standard
Bullish: 1
Bearish: -1
Neutral: 0 (only for selected indicators)
Calibration Methodology
Pre-calibrated functions were optimized using:
Historical backtesting on target assets
Parameter optimization for maximum Sharpe ratio
Validation on out-of-sample data
Real-time forward testing
Iterative refinement based on market conditions
Advantages of Pre-Calibrations
Instant Deployment: No parameter tuning needed
Asset-Optimized: Tailored to specific market characteristics
Tested Performance: Validated through extensive backtesting
Consistent Framework: All use the same 8-indicator structure
Easy Comparison: Compare different assets using same methodology
Performance Considerations
All functions are optimized for Pine Script v5
Proper use of var for state management
Efficient array operations where needed
Minimal recursive calls
Pre-calibrations add negligible computational overhead
📋 License
This code is subject to the Mozilla Public License 2.0 at mozilla.org
🔧 Installation
pinescriptimport unicorpusstocks/NormalizedIndicators/1
Then use functions with your chosen alias:
pinescript// Individual indicators
lib.BBPct(20, 2.0, close)
lib.RSI(14, close, 5)
lib.TSI(close, 25, 13, 13)
// Pre-calibrated systems
lib.btc_4d_cal(close)
lib.eth_4d_cal(close)
lib.meme_cal(close)
⚠️ Important Notes
General Usage
All indicators are lagging, as is typical for trend-following indicators
Signals should be combined with additional analysis (volume, support/resistance, etc.)
Backtesting is recommended before starting live trading with these signals
Different assets and timeframes may require different parameter optimizations
Pre-Calibrated Systems
Calibrations are optimized for specific timeframes - using them on different timeframes may reduce effectiveness
Market conditions change - what worked historically may need adjustment
Pre-calibrations are starting points, not guaranteed solutions
Always validate performance on your specific use case
Consider current market regime (trending vs. ranging)
Risk Management
Meme coin calibrations are designed for extremely volatile assets - use appropriate position sizing
Pre-calibrated systems do not eliminate risk
Always use stop losses and proper risk management
Past performance does not guarantee future results
Customization
Pre-calibrations can serve as templates for your own optimizations
Feel free to adjust individual parameters within calibration functions
Test modifications thoroughly before live deployment
🎓 Advanced Use Cases
Multi-Asset Portfolio Dashboard
Create a dashboard showing consensus across different assets:
pinescriptimport unicorpusstocks/NormalizedIndicators/1 as lib
btc = request.security("BTCUSD", "4D", close)
eth = request.security("ETHUSD", "4D", close)
sol = request.security("SOLUSD", "4D", close)
btcSignal = lib.btc_4d_cal(btc)
ethSignal = lib.eth_4d_cal(eth)
solSignal = lib.sol_4d_cal(sol)
// Plot all three for comparison
plot(btcSignal, "BTC", color.orange)
plot(ethSignal, "ETH", color.blue)
plot(solSignal, "SOL", color.purple)
Regime Detection
Use correlation and calibrations together:
pinescriptimport unicorpusstocks/NormalizedIndicators/1 as lib
// Detect market regime
btc = request.security("BTCUSD", timeframe.period, close)
correlation = lib.MCorrelation(close, btc)
// Choose strategy based on correlation
signal = correlation > 0.7 ? lib.btc_4d_cal(close) : lib.virtual_4d_cal(close)
Comparative Analysis
Compare asset-specific vs. general calibrations:
pinescriptimport unicorpusstocks/NormalizedIndicators/1 as lib
specificSignal = lib.btc_4d_cal(close) // BTC-specific
generalSignal = lib.virtual_4d_cal(close) // General
divergence = specificSignal - generalSignal
plot(divergence, "Calibration Divergence", color.yellow)
🚀 Quick Start Guide
For Beginners
Identify Your Asset: What are you trading?
Find the Calibration: Use the decision tree above
One-Line Implementation: signal = lib.btc_4d_cal(close)
Set Thresholds: Buy when > 0.5, sell when < -0.5
Add Risk Management: Always use stops
For Advanced Users
Start with Pre-Calibration: Use as baseline
Analyze Performance: Backtest on your specific market
Fine-Tune Parameters: Adjust individual indicators if needed
Combine with Other Signals: Volume, market structure, etc.
Create Custom Calibrations: Build your own based on library structure
For Developers
Import Library: Access all functions
Mix and Match: Combine indicators creatively
Build Custom Logic: Use indicators as building blocks
Create New Calibrations: Follow the established pattern
Share and Iterate: Contribute to the trading community
🎯 Key Takeaways
✅ 10 normalized indicators - Consistent interpretation across all
✅ 16+ pre-calibrated systems - Ready-to-use for specific assets
✅ Asset-optimized parameters - No guesswork required
✅ Calculation functions - Advanced correlation and beta analysis
✅ Universal framework - Works across crypto, stocks, forex
✅ Professional-grade - Built on proven technical analysis principles
✅ Flexible architecture - Use pre-calibrations or build your own
✅ Battle-tested - Validated through extensive backtesting
NormalizedIndicators Library transforms complex multi-indicator analysis into actionable signals through both customizable individual indicators and pre-optimized consensus systems. Whether you're a beginner looking for plug-and-play solutions or an advanced trader building sophisticated strategies, this library provides the foundation for data-driven trading decisions.WiederholenClaude kann Fehler machen. Bitte überprüfen Sie die Antworten. Sonnet 4.5
cd_sfp_CxGeneral:
This indicator is designed to assist users who trade the Swing Failure Pattern ( SFP ).
In technical literature (various definitions exist), an SFP is a situation where the price violates a previous swing level but fails to close beyond that level.
• (Liquidity Sweep)
• (Buyer or seller dominance)
• (Stop hunt)
• (Turtle Soup)
The general strategy is built upon seeking trade opportunities after an SFP is formed and conviction is established that the market direction has changed.
Components used to gather confirmation:
• Determining Bias: Periodic SAR
• Obtaining Breakout/Reversal Confirmation: Change in State Delivery (CISD)
• Defining the Buyer/Seller Block (Supply/Demand Zones): Mitg Blocks (Mitigation Blocks), FVG (Fair Value Gaps), and Standard Deviation Projection
• Key Levels: Previous HTF (Higher Time Frame) levels
• Setting Targets: Standard Deviation Projection
• Trade Management: Anchored VWAP and opposing blocks
• Time-Based Context: Session Killzone times
• Notifications: An alarm/alert system will be utilized to stay informed.
________________________________________
Details:
Swing and Swing Failure Pattern:
Swing Sweep Types (Liquidity Sweep):
1. Single
2. Consecutive (The liquidity of the entity that swept the liquidity is being swept)
Bias Determination
We need to filter out the numerous SFPs that occur across all time frames. Our first strong filter will be the Bias. We will only look for trades aligned with our bias.
We will use Periodic SAR (Stop and Reverse) to determine the bias. We compare the price with the SAR value from a Higher Time Frame than the one we are trading on.
• Price > SAR => Bullish Bias
• Price < SAR => Bearish Bias
Depending on the pair, H1 SAR may be chosen for scalp trades, and Daily/Weekly SAR for intraday and swing trades.
Key Levels
Strategies looking for trades after a liquidity grab generally state that the sweep / stop hunt movement should occur at a significant price level.
The most fundamental Key Level levels are (User can customize):
• Previous Week High & Low
• Previous Day High & Low
• Previous H4 High & Low
• Previous H1 High & Low
• Asia Killzone High & Low
• London Killzone High & Low
• New York Killzone High & Low
• Monday Range High & Low values
We will prefer SFP formations that occur when these levels are swept. When Key Levels are violated, an information label appears on the screen.
Blocks / Zones
To strengthen our hand, we will use three types of blocks/zones, either with Key Levels or separately. When an SFP structure is formed in these areas (along with bias and breakout confirmation), our expectation is for the price to continue in our desired direction. These regions are:
1. Mitigation Blocks (Mtg)
o (Details can be found in the cd_VWAP_mtg_Cx indicator)
o In short: A second candle, following a bullish candle, crosses its high but fails to close above it. We call this a sweep / SFP. When the price, which was expected to go to the low, instead makes a new high/close, an Mtg block is formed. (Buyers are dominant)
2. FVGs (Fair Value Gaps)
o We use classic FVG structures.
3. Standard Deviation Projection Boxes
o When we get an SFP structure + breakout confirmation (CISD), we use the Standard Deviation Projection to determine our profit-taking and take-profit levels.
o Based on the idea that the price often respects the range between -2 and -2.5 of the projection values, we box this range and use it as our area of interest. (Our expectation is for the price to reverse after reaching this target).
o Let's mark it on the chart.
Confirmation
To summarize what has been explained so far: we look for the price to form an SFP structure in levels/zones we deem important, aligned with our bias, and for the breakout to be confirmed with a CISD.
No single component is strong on its own, but the success rate increases when they occur together.
We observe the following as additional confirmation along with the CISD: a new Mtg block forming in the direction of the breakout, high-volume movement (with FVG and a large body), and respect for VWAPs, the resistance/support line, and the defense block.
Additional Confirmations with Breakouts:
• Defence block, new mtg and VWAP
• Resistance / Support Line:
Indicator Signals
The indicator marks all formed sweeps, selected key levels, blocks, the projection, and CISD confirmations on the screen. The candle where the CISD confirmation occurs is indicated by an arrow.
• Arrows with double short lines signify a CISD that follows an SFP occurring at a Key Level.
• All other CISD candle indications are shown with single-line arrows.
Trade Management
When selecting profit targets in trades (preferably), the projection, opposing blocks, and structures that have formed are taken into account. Do not neglect to look at the structures that have formed against you when entering a trade.
Menu Settings:
• For Mtg blocks, the trading timeframe or a higher timeframe can be selected.
• FVGs formed in the current timeframe are displayed when the price creates an SFP (in "Fvg" option).
• Deviation boxes are displayed when the price creates an SFP (in box).
• The SAR HTF setting (H1) for scalp trades may vary depending on the pair. Users trying trades on higher timeframes should increase the HTF setting.
o Example: If you are looking for a trade with an SFP structure on H1, the SAR HTF setting should be H4 or higher.
• VWAP lines are refreshed starting from the candle that executed the sweep when the price forms an SFP. The only setting to adjust is the source selection setting (hlc3 is selected).
• Time frames and Killzone / Special Zone settings for Key Levels can be changed/should be checked.
Alarms / Alerts:
The conditions that will trigger an alert can be selected from the menu.
• To receive an alert aligned with the bias, the "Alignment with bias" checkbox must be selected.
• The alert should be set on the timeframe where you plan to enter the trade.
• The display options do not affect the alarm conditions. (Example: FVGs are monitored even when the menu selection is "off").
• If the necessary conditions are met, the alarm is triggered on the new candle that opens after the CISD confirmation.
• The alarm will not be triggered more than once at the same Key Level.
The user can preferably select alerts:
• Bias-aligned or Bias-independent
• Sweep (without waiting for CISD)
• Sweep + CISD (without looking for other conditions)
• Sweep + Key Level + CISD (the swept level is a Key Level)
• Sweep + Mtg / Fvg / Dev. + CISD (SFP formed in any of the blocks)
• Sweep + Mtg + CISD (SFP formed in the Mtg block)
• Sweep + Fvg + CISD (SFP formed inside the FVG)
• Sweep + Deviation Box + CISD (SFP formed inside the Dev. Box)
• Sweep + Key Level + Mtg / Fvg / Dev. + CISD (SFP formed simultaneously at a Key Level and any of the blocks)
Trade Example:
• Conditions: Bias-aligned + Sweep + Mtg/Fvg/Dev (at least one) + CISD
• Extra Confirmations: Respect for the Defense Block + Respect for VWAP
• Target (TP): Projection between -2 and -2.5
I welcome your thoughts and suggestions regarding my indicator, which I believe will be successful in the long run by adhering to uncompromising risk management and a strict trading plan.
Happy Trading!
Put Option Profits inspired by Travis Wilkerson; SPX BacktesterPut Option Profits — Travis Wilkerson inspired. This tester evaluates a simple monthly SPX at-the-money credit-spread timing idea: enter on a fixed calendar rule (e.g., 1st Friday or 8th day with business-day shifting) at Open or Close, then exit exactly N calendar days later (first tradable day >= target, at Close). A trade is marked WIN if price at exit is above the entry price (1:1 risk proxy).
The book suggests forward testing 60-day and 180-day expirations to prove the concept. This tool lets you backtest both (and more) to see what actually works best. In the book, profits are taken when the spread reaches ~80% of max credit; losers are left to expire and cash-settle. This backtester does not model early profit-taking—every trade is held to the configured hold period and evaluated on price vs entry at the exit close. Think of it as a pure “set it and forget it” stress test. In live trading, you can still follow Travis’s 80% take-profit rule; TradingView just doesn’t simulate that here. Happy trading!
Features:
Schedule: Day-of-Month (with Prev/Next business-day shift, optional “stay in month”) or Nth Weekday (e.g., 1st Friday).
Entry timing: Open or Close.
Exit: N calendar days later at Close (holiday/weekend aware).
Filters: Optional EMA-200 “risk-on” filter.
Scope: Date range limiter.
Visuals: Entry/exit bubbles (paired colors) or simple win/loss dots.
Table: Overall Win% and N (within range).
Alerts: Entry alert (static condition + dynamic alert() message).
How to use:
[* ]Choose Start Mode (NthWeekday or DayOfMonth) and parameters (e.g., 1st Friday or DOM=8, PrevBizDay).
Pick Entry Timing (Open or Close).
Set Days In Trade (e.g., 150).
(Optional) Enable EMA filter and set Date Range.
Turn Bubbles on/off and/or Dots on/off.
Create alert:
Simple ping: Condition = this indicator -> Monthly Entry Signal -> “Once per bar” (Open) or “Once per bar close” (Close).
Rich message: Condition = this indicator -> Any alert() function call.
Notes:
Keep DOM shift in same month: when a DOM falls on a weekend/holiday, PrevBizDay/NextBizDay shift will stay inside the month if enabled; otherwise it can spill into the prior/next month. (Ignored for NthWeekday.)
Credits: Concept sparked by “Put Option Profits – How to turn ten minutes of free time into consistent cash flow each month” by Travis Wilkerson; this script is a neutral research tool (not financial advice).
週一普跌策略 Monday shit Strategy Strategy Description / 策略敘述
EN
This strategy takes a short position at the start of each Monday, based on the hypothesis that cryptocurrency markets tend to experience post-weekend risk-off behavior.
The system enters a full-equity short position at the Tokyo open (Taipei 08:00), aiming to capture Monday downside pressure resulting from accumulated weekend information and macro sentiment adjustments when traditional financial markets reopen.
Risk management uses fixed percentage take-profit and stop-loss levels, emphasizing asymmetric reward-to-risk (large occasional gains, small frequent losses).
The model reflects the increasing alignment between crypto price behavior and traditional financial market cycles.
ZH-TW
本策略於每週一開盤時做空,基於假設加密資產在週末後具有風險釋放與補跌傾向。
系統會在台北時間早上 08:00 以全倉做空,目標捕捉因週末累積消息與傳統金融市場重新開盤所造成的下跌壓力。
風控採固定止盈、止損百分比,強調高報酬/低風險的不對稱結構(小虧多次、偶爾大賺)。
此模型反映加密貨幣市場行為與華爾街週期愈趨一致的市場現象。
NEXT GEN INSPIRED BY OLIVER VELEZDYOR NFA
1. Initial Setup & Application
Load the Strategy to your desired chart (e.g., EURUSD M5, as suggested by the script's backtest).
Overlay: Ensure the script is set to overlay=true (which it is) so the signals and Moving Averages plot directly on the price chart.
Equity Management: Review the initial strategy settings for capital and position sizing:
Initial Capital: Defaults to 10,000.
Default Qty Type: Set to strategy.percent_of_equity (22%), meaning 22% of your available equity is used per trade. Adjust this percentage based on your personal risk tolerance.
2. Reviewing Key Indicator Inputs
The script uses default values that are optimized, but you can adjust them in the settings panel:
Fast EMA: Defaults to 9 (e.g., a 9-period Exponential Moving Average).
Slow EMA: Defaults to 21 (e.g., a 21-period Exponential Moving Average). These EMAs define the short-term trend.
ATR: Defaults to 14 (Average True Range). Used to dynamically calculate volatility for SL/TP distances.
Final R:R: Defaults to 4.5 (minimum R:R required for a signal). This is the core of the strategy's high reward goal.
3. Interpreting Entry Signals
A trade signal is generated only when all conditions—EMA trend, "Elephant Logic" momentum, and non-ranging market—are met.
Long Signal: Appears as a green triangle (▲) below the bar, labeled "COMBO".
Short Signal: Appears as a red triangle (▼) above the bar, labeled "COMBO".
Live Plan: Upon signal, a detailed label is immediately plotted on the chart showing the FULL BATTLE PLAN:
SL: Calculated Stop Loss price.
TP: Calculated Take Profit price (based on the Final R:R).
Risk/Reward Pips: The calculated pips for the trade's risk and reward.
R:R = 1:4.5: The exact Risk-to-Reward ratio.
4. Understanding Market Conditions & Visuals
The script provides visuals to help you understand the current market state:
Trend EMAs: The 9 EMA (green) and 21 EMA (purple/magenta) are plotted to show the underlying trend.
Long trades only fire when Price > 9 EMA > 21 EMA.
Short trades only fire when Price < 9 EMA < 21 EMA.
Ranging Market (Rejection): Bars turn a light gray/silver when the proprietary "Reject Ranging" logic is active, indicating a low-volatility period. No new trades will be taken during these bars.
Momentum Bar: Bars turn a gold/yellow color when the "Elephant Logic" (high-momentum, large-body candles over 2-3 periods) is detected, highlighting powerful price movement.
5. Execution and Exit Logic
The strategy handles entry, scaling, and exit automatically:
Entry: A market order is placed (strategy.entry) immediately upon the bar where the longSetup or shortSetup condition is met.
Scaling Out (+1R): If the trade moves favorably by an amount equal to the initial risk (1R), the script closes a portion of the position (strategy.close with comment "+1R"). This partial exit locks in profit equivalent to the initial risk.
Re-entry (Pyramiding): After the +1R exit, the strategy attempts a re-entry (LONG RE/SHORT RE diamond plot) if the price meets certain criteria near the 9 EMA, trying to capitalize on further trend continuation.
Final Exits:
Take Profit: A limit order is set at the calculated TP level (stopDist * minRR).
Stop Loss: A stop order is set at the calculated SL level (stopDist * 1.3), slightly wider than the initial SL distance, likely to account for spread/slippage, ensuring the maximum loss is defined.
Trailing Stop: A trailing stop is applied to the re-entry positions (LONG RE/SHORT RE) to protect profits as the market moves further in the direction of the trade.
Confirmed Momentum QQQ (RSI/MACD Filter)Gemini and Myself,
How This Targets a Higher Win Rate
The key to the win rate increase is the RSI 20/80 filter.
Long Signal: A long entry is now only taken if the trend is up (SMA cross), the MACD is bullish, and the RSI is not overbought (below 80). By only entering when momentum is not yet exhausted, you increase the chance that the price can travel far enough to hit your 4.0 point Take Profit.
Wider SL: The wider Stop Loss of 2.5 points reduces the chance of being stopped out prematurely by routine market movements (whipsaws), which is the number one killer of win rates in high-frequency trading.
After applying these changes, you will need to run the Strategy Tester again to see the new win rate and the new total number of trades.
Would you like me to help you interpret the new Strategy Tester results once you apply these settings?
PSAR with ATR Trailing Stop + SMA Filter📈 Strategy Overview: PSAR + 6×ATR Trailing Stop with SMA Filter
This strategy is built around the principle of “Cut the losers, let the winners run” — a disciplined, trend-following approach that combines the Parabolic SAR indicator with dynamic risk management and a Simple Moving Average (SMA) trend filter.
🔍 Strategy Logic
Trend Filter Trades are only taken in the direction of the prevailing trend, defined by a user-selected SMA (default: 100).
✅ Long trades only when price is above the SMA
✅ Short trades only when price is below the SMA
Entry Signal: A trade is triggered when the Parabolic SAR flips to the opposite side of the price bars, signaling a potential trend reversal.
Stop Loss: The stop loss is dynamically set at 6×ATR from the entry price. This adapts to market volatility and is recalculated every bar — effectively acting as a trailing stop.
Exit Logic: There is no fixed take profit. The trade remains open until the trailing stop is hit — allowing winners to run and losers to be cut quickly.
Risk Management: Each trade risks 0.5% of total equity, ensuring consistent position sizing and capital preservation.
📊 Visual Elements
PSAR dots mark trend direction changes
SMA line shows the broader trend filter
Trailing stop crosses (with 50% opacity) indicate the current stop level without cluttering the chart
⚙️ Customizable Inputs
PSAR parameters: Start, Increment, Maximum
ATR length and multiplier
SMA length
Risk percentage per trade
This strategy is ideal for traders who want to stay aligned with the trend, automate disciplined exits, and avoid emotional decision-making. Clean, simple, and powerful.
Wishing you calm and successful trades!
Enhanced MA Crossover Pro📝 Strategy Summary: Enhanced MA Crossover Pro
This strategy is an advanced, highly configurable moving average (MA) crossover system designed for algorithmic trading. It uses the crossover of two customizable MAs (a "Fast" MA 1 and a "Slow" MA 2) as its core entry signal, but aggressively integrates multiple technical filters, time controls, and dynamic position management to create a robust and comprehensive trading system.
💡 Core Logic
Entry Signal: A bullish crossover (MA1 > MA2) generates a Long signal, and a bearish crossover (MA1 < MA2) generates a Short signal. Users can opt to use MA crossovers from a Higher Timeframe (HTF) for the entry signal.
Confirmation/Filters: The basic MA cross signal is filtered by several optional indicators (see Filters section below) to ensure trades align with a broader trend or momentum context.
Position Management: Trades are managed with a sophisticated system of Stop Loss, Take Profit, Trailing Stops, and Breakeven stops that can be fixed, ATR-based, or dynamically adjusted.
Risk Management: Daily limits are enforced for maximum profit/loss and maximum trades per day.
⚙️ Key Features and Customization
1. Moving Averages
Primary MAs (MA1 & MA2): Highly configurable lengths (default 8 & 20) and types: EMA, WMA, SMA, or SMMA/RMA.
Higher Timeframe (HTF) MAs: Optional MAs calculated on a user-defined resolution (e.g., "60" for 1-hour) for use as an entry signal or as a trend confirmation filter.
2. Multi-Filter System
The entry signal can be filtered by the following optional conditions:
SMA Filter: Price must be above a 200-period SMA for long trades, and below it for short trades.
VWAP Filter: Price must be above VWAP for long trades, and below it for short trades.
RSI Filter: Long trades are blocked if RSI is overbought (default 70); short trades are blocked if RSI is oversold (default 30).
MACD Filter: Requires the MACD Line to be above the Signal Line for long trades (and vice versa for short trades).
HTF Confirmation: Requires the HTF MA1 to be above HTF MA2 for long entries (and vice versa).
3. Dynamic Stop and Target Management (S/L & T/P)
The strategy provides extensive control over exits:
Stop Loss Methods:
Fixed: Fixed tick amount.
ATR: Based on a multiple of the Average True Range (ATR).
Capped ATR: ATR stop limited by a maximum fixed tick amount.
Exit on Close Cross MA: Position is closed if the price crosses back over the chosen MA (MA1 or MA2).
Breakeven Stop: A stop can be moved to the entry price once a trigger distance (fixed ticks or Adaptive Breakeven based on ATR%) is reached.
Trailing Stop: Can be fixed or ATR-based, with an optional feature to auto-tighten the trailing multiplier after the breakeven condition is met.
Profit Target: Can be a fixed tick amount or a dynamic target based on an ATR multiplier.
4. Time and Session Control
Trading Session: Trades are only taken between defined Start/End Hours and Minutes (e.g., 9:30 to 16:00).
Forced Close: All open positions are closed near the end of the session (e.g., 15:45).
Trading Days: Allows specific days of the week to be enabled or disabled for trading.
5. Risk and Position Limits
Daily Profit/Loss Limits: The strategy tracks daily realized and unrealized PnL in ticks and will close all positions and block new entries if the user-defined maximum profit or maximum loss is hit.
Max Trades Per Day: Limits the number of executed trades in a single day.
🎨 Outputs and Alerts
Plots: Plots the MA1, MA2, SMA, VWAP, and HTF MAs (if enabled) on the chart.
Shapes: Plots visual markers (BUY/SELL labels) on the bar where the MA crossover occurs.
Trailing Stop: Plots the dynamic trailing stop level when a position is open.
Alerts: Generates JSON-formatted alerts for entry ({"action":"buy", "price":...}) and exit ({"action":"exit", "position":"long", "price":...}).
Buy And Hold Performance Screener - [JTCAPITAL]Buy And Hold Performance Screener – is a script designed to track and display multi-asset “buy and hold” performance curves and performance statistics over defined timeframes for selected symbols. It doesn’t attempt to time entries or exits; rather, it shows what would happen if one simply bought the asset at the defined start date and held it.
The indicator works by calculating in the following steps:
Start Date Definition
The script begins by reading an input for the start date. This defines the bar from which the equity curves begin.
Symbol Definitions & Close Price Retrieval
The script allows the user to specify up to ten tickers. For each ticker it uses request.security() on the “1D” timeframe to retrieve the daily close price of that symbol.
Plot Enable Inputs
For each ticker there is an input boolean controlling whether the equity curve for that ticker should be plotted.
Asset Name Cleaning
The helper function clean_name(string asset) => … takes the asset string (e.g., “CRYPTO:SOLUSD”) and manipulates it (via string splitting and replacements) to derive a cleaned short name (e.g., “SOL”). This name is used for visuals (labels, table headers).
Equity Curve Calculation (“HODL”)
The helper function f_HODL(closez) defines a variable equity that assumes a starting equity of 1 unit at the start date and then multiplies by the ratio of each bar’s close to the prior bar’s close: i.e. daily compounding of returns.
Performance Metrics Calculation
The helper function f_performance(closez) calculates, for each symbol’s close series, the percentage change of the current close relative to its close 30 days ago, 90 days ago, 180 days ago, 1 year ago (365 days), 2 years ago (730 days) and 3 years ago (1095 days).
Equity Curve Plots
For each ticker, if the corresponding plot input is true, the script assigns a plotted variable equal to the equity curve value. Its then drawing each selected equity curve on the chart, each in a distinct color.
Table Construction
If the plottable input is true, the script constructs a table and populates it with rows and column corresponding to the assigned tickers and the set 6 timeframes used for display.
Buy and Sell Conditions:
Since this is strictly a “buy-and-hold” performance screener, there are no explicit buy or sell signals generated or plotted. The script assumes: buy at the defined start_date, hold continuously to present. There are no filters, no exit logic, no take-profit or stop-loss. The benefit of this approach is to provide a clean benchmark of how selected assets would have performed if one simply adopted a passive “buy & hold” approach from a given start date.
Features and Parameters:
start_date (input.time) : Defines the date from which performance and equity curves begin.
ticker1 … ticker10 (input.symbol) : User-selectable asset symbols to include in the screener.
plot1 … plot10 (input.bool) : Boolean flags to enable/disable plotting of each asset’s equity curve.
plottable (input.bool) : Flag to enable/disable drawing the performance table.
Colored plotting + Labels for identifying each asset curve on the chart.
Specifications:
Here is a detailed breakdown of every calculation/variable/function used in the script and what each part means:
start_date
This is defined via input.time(timestamp("1 Jan 2025"), title = "Start Date"). It allows the user to pick a specific calendar date from which the equity curves and performance calculations will start.
ticker1 … ticker10
These inputs allow the user to select up to ten different assets (symbols) to monitor. The script uses each of these to fetch daily close prices.
plot1 … plot10
Boolean inputs controlling which of the ten asset equity curves are plotted. If plotX is true, the equity curve for ticker X will be visible; otherwise it will be not plotted. This gives the user flexibility to include or exclude specific assets on the chart.
Returns the cleaned asset short name.
This provides friendly text labels like “BTC”, “ETH”, “SOL”, etc., instead of full symbol codes.
The choice of distinct colours for each asset helps differentiate curves visually when multiple assets are overlaid.
Colour definitions
Variables color1…color10 are explicitly defined via color.rgb(r,g,b) to give each asset a unique colour (e.g., red, orange, yellow, green, cyan, blue, purple, pink, etc.).
What are the benefits of combining these calculations?
By computing equity curves for multiple assets from the same start date and overlaying them, you can visualise comparative performance of different assets under a uniform “buy & hold” assumption.
The performance table adds multi-horizon returns (30 D, 90 D, 180 D, 1 Y, 2 Y, 3 Y) which helps the user see both short-term and longer-term performance without having to manually compute returns.
The use of daily close data via request.security(..., "1D") removes dependency on the chart’s timeframe, thereby standardising the comparison across assets.
The equity curve and table together provide both visual (curve) and numerical (table) summaries of performance, making it easier to spot trends, divergences, and cross-asset comparisons at a glance.
Because it uses compounding (equity := equity * (closez / closez )), the curves reflect the real growth of a 1-unit investment held over time, rather than only simple returns.
The labelling of curves and the color-coding make the multi-asset overlay easier to interpret.
Using a clean start date ensures that all curves begin at the same point (1 unit at start_date), making relative performance intuitive.
Because of this, the script is useful as a benchmarking tool: rather than trying to pick entries or exit points, you can simply compare “what if I had held these assets since Jan 1 2025” (or your chosen date), and see which assets out-/under-performed in that period. It helps an investor or trader evaluate the long-term benefits of passive vs. active management, or of allocation decisions.
Please note:
The script assumes continuous daily data and does not account for dividends, fees, slippage, or tax implications.
It does not attempt to optimise timing or provide trading signals.
Returns prior to the start date are ignored (equity only begins once time >= start_date).
For newly listed assets with fewer than 365 or 730 or 1095 days of history, the longer-horizon returns may return na or misleading values.
Because it uses request.security() without specifying lookahead, and on “1D” timeframe, it complies with standard usage but you should verify there is no look-ahead bias in your particular setup.
ENJOY!






















