Momentum Screener: 1M/3M/52W HighThis script is a specialized momentum-tracking tool designed to identify "Stage 2" breakout candidates and high-growth stocks. It filters for three specific technical strengths simultaneously, ensuring you are only looking at tickers with both short-term explosive growth and long-term trend confirmation.
Educational
Order Blocks & Breaker Blocks Destek DirencOrder Blocks & Breaker Blocks Destek Direnc Al Sat Bölgeleri
The Fantastic 4 - Momentum Rotation StrategyOverview
The Fantastic 4 is a tactical momentum rotation indicator. It rotates capital monthly across four carefully selected assets based on their 75-day Rate of Change (ROC), allocating only to assets with positive momentum and proportionally weighting them by their momentum strength.
This indicator tracks the strategy's historical performance, displays current allocation recommendations, and sends monthly rebalance alerts so you can easily manage your portfolio. Simply set your capital amount and the indicator shows exactly how much to invest in each asset.
Why These Four Assets?
The selection of 20-year Bonds, Gold, Russell 2000, and Emerging Markets is based on their specific volatility and decorrelation characteristics, which allow the strategy to react quickly to market shifts while providing protection during downturns.
Russell 2000 (Small Caps)
Chosen over the S&P 500 because it is more "lively" and active (Nowadays you could use also the Nasdaq). Its trends are steeper and more vertical, making it easier for a momentum indicator to catch clear trends. While the S&P 500 has more inertia, the Russell 2000 develops faster, allowing the strategy to capture gains in shorter periods.
Emerging Markets
Included because they can act like a "rocket," offering explosive growth potential while maintaining high decorrelation from developed equity markets. When emerging markets trend, they trend hard.
20-Year Bonds
Selected because they are the most decorrelated asset from equities. When a stock market crash occurs, capital typically flows into fixed income, and long-term bonds (20-year) notice this influx the most, making their price reaction more significant and easier to trade. This is the strategy's primary "safe haven."
Gold
Along with bonds, gold serves as a defensive asset providing a "shield" for the portfolio when general market conditions deteriorate. It offers additional decorrelation and crisis protection.
How the Strategy Works
The 75-Day Momentum Engine
The strategy uses a 75-day momentum lookback (roughly 3.5 months), which is considered very "agile" compared to other models like Global Equity Momentum (GEM) that use 200-day periods. This shorter window allows the strategy to:
React quickly to changes in trend
Catch upward movements in volatile assets early
Exit quickly when trends break
Monthly Rebalancing Process
At the end of each month:
Step 1: Calculate 75-day ROC for each asset
Step 2: Filter out assets with negative momentum (they receive 0% allocation)
Step 3: Distribute capital proportionally based on momentum strength
Step 4: Apply 5% minimum threshold (smaller allocations become zero)
Step 5: Apply 80% maximum cap (no single asset exceeds 80%, remainder stays in cash)
The 80% Ceiling Rule
There is an 80% investment ceiling for any single asset to prevent over-exposure. If only one asset (like bonds) has positive momentum, 80% goes to that asset and 20% remains in cash/liquidity.
Behavior in Bearish Markets
When markets turn bearish, the strategy protects capital through several mechanisms:
Automatic Risk-Off
Because the strategy only invests in assets with positive momentum, it automatically moves away from crashing equities. If an asset's trend becomes negative, the strategy stays "on the sidelines" for that asset.
The Bond Haven
During prolonged bearish periods or sudden crashes (like COVID-19), the strategy typically shifts into 20-year bonds. During the COVID-19 crash in March 2020, while global markets were collapsing, strategies like this reportedly yielded positive returns by being positioned in bonds.
Full Liquidity Option
If no assets show positive momentum, the strategy moves to 100% cash. This is rare given the decorrelation between the four assets—when equities crash, bonds and gold typically rise.
What This Indicator Does
This is a tracking and alerting tool that:
Calculates the optimal allocation based on current momentum
Shows historical monthly performance of the strategy
Simulates portfolio equity growth from your specified starting capital
Displays exact dollar amounts to invest in each asset
Sends monthly rebalance alerts with complete instructions
Detects missing data to prevent false signals
Features
Dynamic allocation table showing weights, dollar amounts, and ROC values
Monthly returns history with color-coded performance
Data availability detection with visual status indicators
Configurable alerts for rebalancing, go-to-cash, and missing data
Simulated equity curve from initial capital
Settings Guide
Assets
Configure your four ETFs. The default European ETFs are:
Asset 1 - XETR:IS04: iShares 20+ Year Treasury Bond (Bonds)
Asset 2 - XETR:GZUR: Gold ETC
Asset 3 - XETR:XRS2: Xtrackers Russell 2000 (Small Caps)
Asset 4 - XETR:XMME: Xtrackers Emerging Markets (EM)
For US markets, consider: TLT (20-year bonds), GLD (Gold), IWM (Russell 2000), EEM (Emerging Markets)
Strategy Settings
ROC Period - Momentum lookback in daily bars. Default: 75 days (~3.5 months)
Max Allocation % - Maximum weight for any single asset. Default: 80%
Min Allocation % - Threshold below which allocation becomes zero. Default: 5%
Capital
Initial Capital - Your portfolio value. The indicator calculates exact amounts for each asset based on this. Default: $20,000
Display
Table Positions - Position the allocation and history tables on screen
Months of History - How many past months to display (3-24)
Alerts
Monthly Rebalance Alert - Sends complete allocation details at month end
Go-to-Cash Alert - Alerts when all assets have negative momentum
Missing Data Alert - Warns when asset data is unavailable
How to Use
Initial Setup
Add indicator to any chart and switch to MONTHLY timeframe
Configure your four ETF tickers
Set your portfolio capital amount
Position the tables where you prefer
Setting Up Alerts
Click Alert button or press Alt+A
Set Condition to "Fanta4"
Select "Any alert() function call"
Choose notification method (Email, Push, Webhook, etc.)
Set expiration to "Open-ended"
Monthly Workflow
Receive rebalance alert at the start of each month
Alert shows exact percentages AND dollar amounts for each asset
Adjust your portfolio accordingly
No action needed during the month
Reading the Tables
Green = positive returns/momentum
Red = negative returns/momentum
Orange "N/A" = missing data
Alloc column shows weight distribution (e.g., "45/35/20/—")
Alert Message Example
Monthly alerts include:
Target month for the new allocation
Current portfolio value
Each asset's percentage AND dollar amount
Each asset's momentum (ROC) value
Cash allocation if applicable
Total return since inception
Historical Context
This strategy combines elements of:
Dual Momentum (Gary Antonacci) - Relative and absolute momentum
Global Equity Momentum (GEM) - But with shorter 75-day vs 200-day lookback
Risk parity concepts - Decorrelated asset selection
The key innovation is the specific asset selection optimized for momentum trading and the agile 75-day lookback period that allows faster reactions to trend changes.
Data Requirements
The strategy activates only when all four assets have valid price data (minimum 75 days of history). The data status row shows checkmarks for available data. Note: Some ETFs have limited history (e.g., XMME data starts June 2017).
Limitations
This is a tracking indicator, not an automated trading system
Past performance is hypothetical and does not guarantee future results
Requires all four assets to have valid data; partial allocation not supported
Monthly rebalancing may miss shorter-term momentum shifts
Transaction costs, slippage, and taxes are not included in simulation
ETF availability and liquidity vary by region
The 75-day momentum may whipsaw in choppy, trendless markets
Disclaimer
This indicator is for educational and informational purposes only. It does not constitute financial advice.
Version History
v1.0 - Initial release with momentum rotation, allocation tables, data validation, and monthly alerts
KJ Sessions (Today Only): Asia/London/US + OverlapKJ Sessions : Asia/London/US + Overlap.
best for people to clearly mark Asia, UK and US opening and closing timing.
logger.DEMO◼ Objective
This is an accompanying script to logger library. As the library has lot of logging features, this script demonstrates how all fields and methods interact to display logs on screen.
Please always use the latest version of the library and the key information functions
◼ How to access help and info about this library
Import the latest version of Library, call logger.overview(), and hover mouse over overview() to see help in Editor!
import GETpacman/logger/4 as logger
logger.overview() => Help and general information
logger.sampleCode() => Sample Code Usage
logger.fields() => For listing all fields
logger.methods() => For listing of all methods
Market Info & Performance Boxi just like to see these metrics on the chart. Play it with and make it look better if you want. This way I can have the whole screen just for the chart.
BTC Spot Premium Index (Coinbase - Binance )Overview
This indicator measures the price difference between Bitcoin (BTC) on Coinbase and Binance, providing insights into the buying pressure from US-based investors versus the global market. A positive premium suggests stronger buying activity on Coinbase, which is often interpreted as a bullish signal for BTC.
Key Features
•
Premium Calculation: The core of the indicator is the formula: Coinbase BTC Price - Binance BTC Price.
•
Visual Representation: The premium is plotted as an oscillator with a zero line. Positive values are colored green, and negative values are red, making it easy to identify the prevailing market sentiment.
•
Moving Average: A customizable moving average (default is a 20-period SMA) is included to help identify the trend of the premium. The MA line is displayed in white.
•
Adjustable Parameters: You can adjust the moving average length and type (SMA, EMA, WMA, RMA) to fit your trading style.
How to Use
1.
Identify US Market Sentiment: A sustained positive (green) premium suggests strong buying interest from the US market, which can be a precursor to price appreciation.
2.
Spot Trend Reversals: A crossover of the premium line above the zero line can signal a shift from bearish to bullish sentiment. Conversely, a cross below the zero line may indicate weakening US demand.
3.
Confirm with Moving Average: When the premium line crosses above its moving average, it can signal strengthening momentum. A cross below the MA may suggest a potential slowdown.
Interpretation
•
Green Area (Positive Premium): Indicates that BTC is trading at a higher price on Coinbase than on Binance. This is generally considered a bullish sign, as it reflects strong demand from US investors.
•
Red Area (Negative Premium): Indicates that BTC is trading at a lower price on Coinbase. This may suggest weaker demand in the US market or stronger selling pressure.
•
White Line (Moving Average): Helps to smooth out the premium data and identify the underlying trend. Use it as a dynamic support or resistance level for the premium itself.
This indicator is a powerful tool for gauging market sentiment and can be a valuable addition to any BTC trader's toolkit. However, it should be used in conjunction with other technical analysis tools and not as a standalone signal for making trading decisions.
Ichimoku bull bear trend Multi-BG by Pranojit Dey It gives you bullish and bearish bias using ichimoku, VWAP, SMA and Pivot. can be used as a great confirmation tool for trading. Use it. You will love it. Lets trade traders....
Multi-Symbol RSI Portfolio Simulator [Honestcowboy]The Multi-Symbol RSI Portfolio Simulator was build to test a theory, does the RSI indicator work in FOREX assets. Does it have predictive power. In this example the security function is used to fetch data for 40 different Forex pairs and it executes a very simple trading strategy. Sell when RSI hits 80, flatten if back below. Buy when RSI hits 20, flatten if back above. All executed on bar closes so no intra bar stuff.
🟦 🟦 🟦 Very Important Disclaimer
This is a very crude indicator which does not calculate trading costs and assumes perfect execution of trades with zero slippage. Forex markets carry high risk and most CFD brokers ask high spreads and trading costs so this approach will most likely only work on the H4 or above Daily charts. We are observing market behaviour here, it's a study of price action not an executable ready strategy. Do your own cost analysis, simulation if you want to take this idea further.
🟦 What is the point?
I build this indicator to prove that RSI indeed causes price action reactions especially on the intraday level in forex. Just like any study or paper not accounting for trading costs, this is just hypothetical and a starting point.
🟦 CALCULATION
On each bar close it will check RSI value for each pair in the list. If one of the pairs meets the condition for a long or short it will open that trade on next bar open and hold it till close. Add the profits/losses to the equity line. And if condition still true on next bar do it again, this is a very crude simple form of testing. Tradingview strategy tester is superior but does not allow for multi-pair trading.
Short Condition: RSI above 80
Short Exit: RSI below 70
Long Condition: RSI below 20
Long Exit: RSI above 30
The indicator also has 2 modes: Mean reversion and Trend mode. On default it uses Mean Reversion which is explained above. Trend mode does the exact opposite, so long above 80 short below 20.
I've also included a table with a heatmap showing all the trading pairs the indicator uses, it's current RSI value and color based on how close indicator is to shorting or longing it from green to red with gray being middle so no direction.
🟦 USE CASES
You can tweak the setting for different RSI values. Different RSI lengths and also freely change any trading pair inside the list to make your own test. I'm including some screenshots of tests here below:
ICT 7/8/9am lines NY session + 7.30/8.30/9.30 linesThis script show the 7, 8, 9 AM NY session lines, together with the 7.30, 8.30 and 9.30AM lines, like ICT teaches in the 2024 Mentorship, lesson 2.
Feel free to use it!
Chart This in GoldProduces a historical line chart in the bottom pane to reflect how many units of spot gold (XAU) could be exchanged for one unite of the underlying asset.
Thick Wick OverlayI have a hard time seeing the wick and made a simple overlay indicator to create a "thicker wick". You can change the thickness and wick color to your desired color and thickness.
Ichimoku Multi-BG System by Pranojit Dey (Exact Alignment)It shows trend of different levels with the help of Ichimoku, VWAP, SMA and Pivot. Use it as a strong confluence for any entry. Lets trade guys...
Gold Pin Bar Pivot Alerts - FixedThis script is designed for the high volatility of Gold (XAU/USD). It identifies Pin Bars with body less than 30% of the candle's total range, and the candle occuring at a structural Pivot High or Pivot Low
EMA 6/50 Cross + ADX 20 + AlertsThis indicator is designd to filter noise off the EMA cross with the ADX greater than 20 condition.
Pre-Market Levels Monitor - CandleClub (20 Stocks)Monitor 20 stocks simultaneously with automatic breakout/breakdown alerts based on pre-market and previous day levels.
What It Does
This indicator tracks four critical price levels for up to 20 stocks in a single dashboard:
- PMH (Pre-Market High) - Highest price from 4:00 AM - 9:30 AM ET
- PML (Pre-Market Low) - Lowest price from 4:00 AM - 9:30 AM ET
- PDH (Previous Day High) - Previous trading day's high
- PDL (Previous Day Low) - Previous trading day's low
Key Features
✅ Real-time Dashboard - All 20 stocks displayed in a color-coded table
- Green cells = Price above level (bullish)
- Red cells = Price below level (bearish)
- Gray cells = Level not yet broken
✅ Smart Alerts - Automatic notifications when stocks break key levels
- Bullish Breakout: Price breaks BOTH PMH and PDH
- Bearish Breakdown: Price breaks BOTH PML and PDL
- Maximum 2 alerts per direction per stock per day (prevents spam)
✅ Zero Manual Work - Set it and forget it
- Levels auto-update daily at 4:00 AM ET
- Works during pre-market, regular hours, and displays data on weekends
- Edge detection ensures alerts fire only once per break
✅ Fully Customizable
- Choose any 20 US stocks
- Adjustable table position and size
- Sort by total alerts, bullish alerts, or bearish alerts
- Customize session times if needed
How To Use
1. IMPORTANT: Use on a 1-minute chart (required for data batching)
2. Enable "Extended Hours" in chart settings to see pre-market data
3. Configure your 20 ticker symbols in indicator settings
4. Set up TradingView alerts for notifications
Perfect For
- Pre-market traders monitoring multiple stocks
- Day traders tracking breakout opportunities
- Swing traders watching key support/resistance levels
- Anyone who wants automated multi-stock level monitoring
Technical Details
- Pine Script v6 - Latest version for optimal performance
- Optimized batching - Stays under TradingView's API call limits
- 20-stock maximum - Due to request.security() call restrictions (20 stocks × 2 calls = 40 limit)
- TradingView Standard plan or higher required
Alert Examples
"Alert: AAPL Bullish Breakout - Break #1
PMH: $183.25 (broken)
PDH: $181.50 (broken)
Current: $183.75
Time: 10:23:15"
Default Stocks Included
Technology: AAPL, MSFT, GOOGL, AMZN, META, NVDA, TSLA, NFLX, AMD, INTC
Finance: JPM, BAC, WFC, GS, MS, C
Healthcare: JNJ, UNH, PFE, ABBV, MRK, TMO
Consumer: WMT, HD, MCD
(All symbols are fully customizable)
Settings Overview
- Symbols (1-20): Configure your watchlist
- Session Times: Adjust pre-market/RTH times (Eastern Time)
- Display Options: Table position, cell size, text size, sorting
- Time Zone: All times in Eastern Time (auto-converts to your local time)
Notes
- Alerts limited to 2 per direction per stock to prevent notification spam
- Use 1-minute chart required (batching system needs consecutive bars)
- Enable Extended Hours to capture pre-market data
- Maximum 80 alerts per day possible (20 stocks × 4 alerts max)
Version
1.0 - Initial Release (January 2026)
---
Created by Gautham Kanaparthy
This indicator is for educational purposes only and does not constitute financial advice. Trading involves risk.
BTC - Satoshis Altcoin Graveyard OVERVIEW
The Satoshi's Altcoin Graveyard (SAG) is a macro-statistical engine designed to solve the problem of Survivorship Bias . It is a well-known phenomenon in the crypto markets that the "Top 10" list is in a constant state of flux. If you look at historical data from CoinMarketCap (CMC) year by year, you will see a revolving door of projects that once seemed "too big to fail" disappearing into obscurity. Meanwhile, Bitcoin has remained the undisputed #1 since inception.
While most traders have a "gut feeling" that Altcoins eventually depreciate against Bitcoin, I believe in measuring it and drawing it on a chart for better visibility. By locking in specific "Cohorts" of market leaders from the past, we can track their inevitable decay through the Satoshi Sieve .
THE 13-COIN STATISTICAL BUCKET
To ensure an objective, non-biased audit, each cohort (we look at 2018, 2020 and 2022) is constructed using a fixed market-cap methodology from the snapshot date (excluding stablecoins):
• The Core: The Top 10 non-stablecoin assets at that time by Marketcap.
• The Risk Alpha: Representative samples from the Top #25, #50, and #100 ranks. (By including lower-ranked "riskier" alts, we capture the full statistical decay of the market, not just the "Blue Chips.")
TECHNICAL ARCHITECTURE
This script is engineered to push the boundaries of the Pine Script engine. TradingView enforces a hard limit of 40 unique data requests . By tracking 3 cohorts of 13 assets plus the Bitcoin base, this indicator utilizes exactly 40/40 requests , providing the maximum possible data density in a single chart window.
THE SPS CONCEPT (Survival Probability Score)
The SPS measures the Breadth of Survival . It answers: "How many coins from this year (the year of the snapshot) are actually outperforming BTC?"
We use a binary logic system to determine if a coin is "Winning" or "Losing" against the only benchmark that matters: Bitcoin.
• The Status Formula: Status = Current_Alt_BTC_Ratio >= Entry_Alt_BTC_Ratio ? 1 : 0 . This means: Every single day, at the Daily Close , the script compares the current Alt/BTC ratio to the fixed ratio from the snapshot date. If the coin is worth more in Bitcoin today than it was back then, it is assigned a "1" (a Win). If it has lost value against Bitcoin, it gets a "0" (a Loss).
• The SPS Line: SPS Line = (Sum of 'Wins' / 13) * 100 This means: We add up all the "Winners" for that specific day and turn it into a percentage. For example, if the Aqua line is at 7.69% on your chart, it confirms that on that day , exactly 1 out of the 13 coins was successfully beating Bitcoin, while the other 12 were underperforming.
THE PERFORMANCE MATRIX
In the top-right corner, we provide a Weighted Portfolio Simulation . This answers the financial question: "If I swapped 1 BTC into an equal-weight basket of these 13 coins on the snapshot day, what is my BTC value today?".
• Value < 1.0 BTC: You lost purchasing power compared to holding Bitcoin.
• Value > 1.0 BTC: You successfully achieved "Alpha" over the benchmark.
HOW TO READ THE CHART
• The Waterfall: Lines generally trend downward as the "Satoshi Sieve" filters out assets that cannot maintain their BTC-relative value.
• Dynamic Winners: We dynamically print the names of the current survivors at the tip of each line. If a cohort shows "None," the graveyard is full.
HOW TO READ THE MATRIX
• The BTC Target: Any portfolio value in the matrix below 1.0 BTC represents a failed altcoin rotation.
• Class of 2018: A portfolio value near 0.15 BTC at the current date, means a 85% loss rate.
• Class of 2020: A portfolio value near 0.77 BTC at the current date, means an approx 20 % loss rate.
• Class of 2022: A portfolio value near 0.31 BTC at the current date, means an approx 70% loss rate.
DIFFERENCE FROM AN ALTCOIN INDEX
Standard Altcoin Indexes (like my ALSI Index ) "rebalance" by removing losers and adding new winners. This is deceptive. The Altcoin Graveyard never rebalances . It forces you to watch the "losers" decay, providing a realistic look at the long-term opportunity cost of "Buy and Hold" for anything other than Bitcoin.
CONCLUSION
The data revealed by the Satoshi Sieve leads to a singular, sobering "Lesson Learned": Picking the right coin to outperform Bitcoin is not just difficult—it is statistically improbable over a long-term horizon.
While the "Risk-Reward" of altcoins is often marketed as having higher upside, the Altcoin Graveyard proves that for the vast majority of assets, the reward does not justify the risk of total portfolio erosion in BTC terms.
• The Mathematical Odds: If you picked a Top 10 coin in 2018, your chance of outperforming BTC today is effectively 0%.
• The Rotation Trap: Most investors "HODL" these assets into the graveyard, hoping for a return to previous ATHs that never comes because the liquidity has already moved on to the next "Class" of winners.
The final conclusion is clear: Diversification into altcoins is often just a slow-motion transfer of wealth back to Bitcoin. If you cannot identify the 1-out-of-13 that survives the Sieve, your best risk-adjusted move has historically been to simply hold the benchmark.
DISCLAIMER
This script is for educational purposes only. It does not constitute financial advice. It is a mathematical study of historical opportunity cost and survivorship bias.
Tags
bitcoin, btc, satoshis graveyard, altseason, dominance, total3, rotation, cycle, index, alsi, Rob Maths, robmaths
ABCD Strategy (v6 Ready)//@version=6
indicator("ABCD Strategy v7 – MTF S/R Filter", overlay=true, max_lines_count=300, max_labels_count=300)
//━━━━━━━━━━━━━━━━━━━━━
// INPUTS
//━━━━━━━━━━━━━━━━━━━━━
pivotLen = input.int(5, "Swing Strength", minval=2)
bcMin = input.float(0.618, "BC Min Fib")
bcMax = input.float(0.786, "BC Max Fib")
cdMin = input.float(1.272, "CD Min Extension")
cdMax = input.float(1.618, "CD Max Extension")
htfTF = input.timeframe("240", "Higher Timeframe (S/R)")
srLookback = input.int(200, "HTF S/R Lookback")
srTolerance = input.float(0.002, "S/R Zone Tolerance (0.2%)")
showSR = input.bool(true, "Show HTF S/R Zones")
showTargets = input.bool(true, "Show Targets")
//━━━━━━━━━━━━━━━━━━━━━
// HIGHER TF SUPPORT / RESISTANCE
//━━━━━━━━━━━━━━━━━━━━━
htfHigh = request.security(syminfo.tickerid, htfTF, ta.highest(high, srLookback))
htfLow = request.security(syminfo.tickerid, htfTF, ta.lowest(low, srLookback))
srHighZoneTop = htfHigh * (1 + srTolerance)
srHighZoneBottom = htfHigh * (1 - srTolerance)
srLowZoneTop = htfLow * (1 + srTolerance)
srLowZoneBottom = htfLow * (1 - srTolerance)
//━━━━━━━━━━━━━━━━━━━━━
// DRAW HTF ZONES
//━━━━━━━━━━━━━━━━━━━━━
if showSR
box.new(bar_index - 5, srHighZoneTop, bar_index + 5, srHighZoneBottom,
bgcolor=color.new(color.red, 85), border_color=color.red)
box.new(bar_index - 5, srLowZoneTop, bar_index + 5, srLowZoneBottom,
bgcolor=color.new(color.green, 85), border_color=color.green)
//━━━━━━━━━━━━━━━━━━━━━
// SWING DETECTION
//━━━━━━━━━━━━━━━━━━━━━
ph = ta.pivothigh(high, pivotLen, pivotLen)
pl = ta.pivotlow(low, pivotLen, pivotLen)
var float A = na
var float B = na
var float C = na
var float D = na
var int Ab = na
var int Bb = na
var int Cb = na
var int Db = na
if not na(pl)
A := B
Ab := Bb
B := C
Bb := Cb
C := low
Cb := bar_index
if not na(ph)
A := B
Ab := Bb
B := C
Bb := Cb
C := high
Cb := bar_index
//━━━━━━━━━━━━━━━━━━━━━
// ABCD LOGIC
//━━━━━━━━━━━━━━━━━━━━━
ab = math.abs(B - A)
bc = math.abs(C - B)
bcFib = bc / ab
validBC = bcFib >= bcMin and bcFib <= bcMax
bull = C > B
cdMinPrice = bull ? C - bc * cdMin : C + bc * cdMin
cdMaxPrice = bull ? C - bc * cdMax : C + bc * cdMax
inDzone = low <= cdMaxPrice and high >= cdMinPrice
//━━━━━━━━━━━━━━━━━━━━━
// MTF STRUCTURE FILTER
//━━━━━━━━━━━━━━━━━━━━━
nearResistance = close <= srHighZoneTop and close >= srHighZoneBottom
nearSupport = close <= srLowZoneTop and close >= srLowZoneBottom
structureOK =
(bull and nearSupport) or
(not bull and nearResistance)
//━━━━━━━━━━━━━━━━━━━━━
// FINAL D CONFIRMATION
//━━━━━━━━━━━━━━━━━━━━━
if validBC and inDzone and structureOK
D := close
Db := bar_index
//━━━━━━━━━━━━━━━━━━━━━
// TARGETS
//━━━━━━━━━━━━━━━━━━━━━
tp1 = bull ? D + math.abs(D - C) * 0.382 : D - math.abs(D - C) * 0.382
tp2 = bull ? D + math.abs(D - C) * 0.618 : D - math.abs(D - C) * 0.618
//━━━━━━━━━━━━━━━━━━━━━
// DRAW PATTERN
//━━━━━━━━━━━━━━━━━━━━━
if not na(D)
line.new(Ab, A, Bb, B, width=2, color=color.blue)
line.new(Bb, B, Cb, C, width=2, color=color.orange)
line.new(Cb, C, Db, D, width=2, color=color.green)
label.new(Db, D, "D (HTF CONFIRMED)", style=label.style_label_down, color=color.yellow)
if showTargets
line.new(Db, tp1, Db + 12, tp1, color=color.green)
line.new(Db, tp2, Db + 12, tp2, color=color.teal)
alertcondition(validBC and inDzone and structureOK,
"ABCD v7 Confirmed",
"ABCD Pattern confirmed at Higher-Timeframe Support/Resistance — wait for price action.")
ABCD Strategy (v7 Ready)//@version=6
indicator("ABCD Strategy v7 – MTF S/R Filter", overlay=true, max_lines_count=300, max_labels_count=300)
//━━━━━━━━━━━━━━━━━━━━━
// INPUTS
//━━━━━━━━━━━━━━━━━━━━━
pivotLen = input.int(5, "Swing Strength", minval=2)
bcMin = input.float(0.618, "BC Min Fib")
bcMax = input.float(0.786, "BC Max Fib")
cdMin = input.float(1.272, "CD Min Extension")
cdMax = input.float(1.618, "CD Max Extension")
htfTF = input.timeframe("240", "Higher Timeframe (S/R)")
srLookback = input.int(200, "HTF S/R Lookback")
srTolerance = input.float(0.002, "S/R Zone Tolerance (0.2%)")
showSR = input.bool(true, "Show HTF S/R Zones")
showTargets = input.bool(true, "Show Targets")
//━━━━━━━━━━━━━━━━━━━━━
// HIGHER TF SUPPORT / RESISTANCE
//━━━━━━━━━━━━━━━━━━━━━
htfHigh = request.security(syminfo.tickerid, htfTF, ta.highest(high, srLookback))
htfLow = request.security(syminfo.tickerid, htfTF, ta.lowest(low, srLookback))
srHighZoneTop = htfHigh * (1 + srTolerance)
srHighZoneBottom = htfHigh * (1 - srTolerance)
srLowZoneTop = htfLow * (1 + srTolerance)
srLowZoneBottom = htfLow * (1 - srTolerance)
//━━━━━━━━━━━━━━━━━━━━━
// DRAW HTF ZONES
//━━━━━━━━━━━━━━━━━━━━━
if showSR
box.new(bar_index - 5, srHighZoneTop, bar_index + 5, srHighZoneBottom,
bgcolor=color.new(color.red, 85), border_color=color.red)
box.new(bar_index - 5, srLowZoneTop, bar_index + 5, srLowZoneBottom,
bgcolor=color.new(color.green, 85), border_color=color.green)
//━━━━━━━━━━━━━━━━━━━━━
// SWING DETECTION
//━━━━━━━━━━━━━━━━━━━━━
ph = ta.pivothigh(high, pivotLen, pivotLen)
pl = ta.pivotlow(low, pivotLen, pivotLen)
var float A = na
var float B = na
var float C = na
var float D = na
var int Ab = na
var int Bb = na
var int Cb = na
var int Db = na
if not na(pl)
A := B
Ab := Bb
B := C
Bb := Cb
C := low
Cb := bar_index
if not na(ph)
A := B
Ab := Bb
B := C
Bb := Cb
C := high
Cb := bar_index
//━━━━━━━━━━━━━━━━━━━━━
// ABCD LOGIC
//━━━━━━━━━━━━━━━━━━━━━
ab = math.abs(B - A)
bc = math.abs(C - B)
bcFib = bc / ab
validBC = bcFib >= bcMin and bcFib <= bcMax
bull = C > B
cdMinPrice = bull ? C - bc * cdMin : C + bc * cdMin
cdMaxPrice = bull ? C - bc * cdMax : C + bc * cdMax
inDzone = low <= cdMaxPrice and high >= cdMinPrice
//━━━━━━━━━━━━━━━━━━━━━
// MTF STRUCTURE FILTER
//━━━━━━━━━━━━━━━━━━━━━
nearResistance = close <= srHighZoneTop and close >= srHighZoneBottom
nearSupport = close <= srLowZoneTop and close >= srLowZoneBottom
structureOK =
(bull and nearSupport) or
(not bull and nearResistance)
//━━━━━━━━━━━━━━━━━━━━━
// FINAL D CONFIRMATION
//━━━━━━━━━━━━━━━━━━━━━
if validBC and inDzone and structureOK
D := close
Db := bar_index
//━━━━━━━━━━━━━━━━━━━━━
// TARGETS
//━━━━━━━━━━━━━━━━━━━━━
tp1 = bull ? D + math.abs(D - C) * 0.382 : D - math.abs(D - C) * 0.382
tp2 = bull ? D + math.abs(D - C) * 0.618 : D - math.abs(D - C) * 0.618
//━━━━━━━━━━━━━━━━━━━━━
// DRAW PATTERN
//━━━━━━━━━━━━━━━━━━━━━
if not na(D)
line.new(Ab, A, Bb, B, width=2, color=color.blue)
line.new(Bb, B, Cb, C, width=2, color=color.orange)
line.new(Cb, C, Db, D, width=2, color=color.green)
label.new(Db, D, "D (HTF CONFIRMED)", style=label.style_label_down, color=color.yellow)
if showTargets
line.new(Db, tp1, Db + 12, tp1, color=color.green)
line.new(Db, tp2, Db + 12, tp2, color=color.teal)
alertcondition(validBC and inDzone and structureOK,
"ABCD v7 Confirmed",
"ABCD Pattern confirmed at Higher-Timeframe Support/Resistance — wait for price action.")






















