Session Highlighter (Asia / London / New York)This TradingView Pine Script highlights the three major Forex sessions—Asia, London, and New York—directly on the chart. Each session has customizable start/end times (based on New York time), toggle switches to show or hide them, and adjustable background colors. The script automatically detects sessions that cross midnight and shades the chart accordingly. It can also place optional labels at the exact opening of each session.
Cicli
CME Bitcoin Weekend Gap (Global) @jerikooDescription:
The Problem: You are watching the wrong hours. Many traders assume CME Bitcoin futures follow standard stock market hours or open Monday morning. This is incorrect.
Stock Market: Opens Monday morning.
CME Bitcoin: Opens Sunday Evening (US Time).
If you are in Europe, this means the market actually opens at Midnight (00:00) Monday. If you are waiting for the "Monday Morning Open," you are late.
The Solution: True Gap Detection This indicator highlights the exact downtime of the CME Bitcoin Futures market to help you identify true liquidity gaps.
Why this script is different: Most gap scripts break when you change your chart's time zone (e.g., switching from UTC to New York). This script is Universal.
Hardcoded Exchange Time: It calculates logic based on "America/Chicago" (CME HQ) time, regardless of your local chart settings.
Manual Offset Fix: Some data feeds have a +/- 1 or 2-hour sync difference depending on the broker. This script includes a "Hour Shift" setting to manually align the box perfectly to your specific candles.
How to use:
Add to your chart.
Look for the Dark Green highlighted zone.
This zone represents the Weekend Gap (Friday Close to Sunday Open).
Troubleshooting: If the box starts 1-2 hours too early or too late, go to Settings and change the "Hour Shift" value (e.g., -1, +1) until it snaps perfectly to the Friday close candle.
Technical Details:
CME Close: Friday 16:00 CT
CME Open: Sunday 17:00 CT
Color: Dark Green (50% Transparency)
Step 3: Categories & Tags
Select these options in the right-hand menu of the publishing page.
Category: Trend Analysis OR Bitcoin
Tags: CME Bitcoin BTC Gap Futures Weekend
Step 4: Final Checklist Before Clicking "Publish"
Load the Code: Make sure the "Manual Fix" version of the code (the last one I gave you) is currently open in the Pine Editor.
Add to Chart: You must click "Add to Chart" so the script is visible on your screen before publishing.
Privacy: Select Public (so others can search for it) or Private (if you only want to share the link).
Visibility: Choose Open (so others can see the code) or Protected (if you want to hide the code, though Open is better for simple scripts like this).
9/21 EMA Trend TOP rIGHT CORNER INDICATORCrossover indicator for the 9 & 21 EMA. Buy Sell for cross up or down respectively. Daily, weekly and Monthly trend.
BTC Risk Metric DCA Adapter (3Commas Webhook Strategy)Risk Metric DCA Adapter (3Commas Webhook Strategy) - WORK IN PROGRESS
This Pine Script strategy, originally inspired by the Risk Metric Indicator, is fundamentally engineered as an Adapter to interface with external trading bots like 3Commas via Webhooks. It calculates a dynamic market risk score and translates that score into specific dollar-cost averaging (DCA) entry levels and tiered profit-taking exits.
Key Features & Logic
Risk Metric Calculation (Credit to The Trading Parrot):
The strategy incorporates a complex, multi-timeframe Risk Metric calculation based on daily and weekly moving averages (SMA) and standard deviation (StDev). This metric aims to quantify the current market overextension or compression relative to long-term historical data. The resulting score dictates the level of conviction for a new trade.
Tiered DCA Entry Sizing:
The strategy defines three distinct Buy Levels (L1, L2, L3) corresponding to increasingly favorable (lower) Risk Metric scores.
L1 (Base): Risk is moderate, initiating the minimum defined trade amount.
L2 (Scaled): Risk is low, initiating L1 amount + L2 amount.
L3 (Aggressive): Risk is very low, initiating L1 + L2 + L3 amounts.
Tiered Profit-Taking Exits:
The strategy implements a staggered, partial profit-taking approach based on the Risk Metric rising:
Sell L1 & L2: Closes a percentage of the current position when the Risk Metric reaches defined high thresholds, locking in partial profits.
Sell L3 (Full Exit): Closes the remaining position when the Risk Metric reaches the highest defined threshold.
The Adapter Function (Webhook Integration)
This script is unique because it uses the Pine Script strategy() function to trigger Order Fills, which are necessary to access powerful placeholders in the TradingView alert system.
Trigger Type: The alert must be set to trigger on Any order fill.
Dynamic Webhook Data: Instead of using fixed alert() commands, the strategy generates dynamic labels (e.g., BUY_ENTRY_L3_USD_1000 or SELL_L1_PCT_25) using the strategy.entry and strategy.close commands.
Data Transfer: The alert message then uses the placeholder {{strategy.order.comment}} to pass these dynamic labels to the 3Commas bot, allowing the bot to execute the precise action (e.g., start_deal_with_volume_in_quote_currency or close_deal_at_market_percentage).
Full Strategy Webhook payload
{
"secret": "YOUR_3COMMAS_SECRET_KEY",
"max_lag": "300",
"timestamp": "{{timenow}}",
"trigger_price": "{{close}}",
"tv_exchange": "{{exchange}}",
"tv_instrument": "{{ticker}}",
"action": "{{strategy.order.action}}",
"bot_uuid": "YOUR_BOT_UUID",
"strategy_info": {
"market_position": "{{strategy.market_position}}",
"market_position_size": "{{strategy.market_position_size}}",
"prev_market_position": "{{strategy.prev_market_position}}",
"prev_market_position_size": "{{strategy.prev_market_position_size}}"
},
"order": {
"amount": "{{strategy.order.contracts}}",
"currency_type": "base",
"comment": "{{strategy.order.comment}}"
}
}
Disclaimer: This script is an adapter tool and does not guarantee profit. Trading requires manual configuration of risk settings, bot parameters, and adherence to platform-specific setup instructions.
Systemic Net Liquidity (Macro Fuel for Crypto & Stocks)This indicator tracks Systemic Net Liquidity, the single most important macro factor for determining the long-term trend of risk assets like Bitcoin (BTC) and major indices (S&P 500). It measures the amount of actual cash available in the financial system to chase speculative assets, distinguishing between money that is circulating and money that is locked up at the Federal Reserve.
Mechanism (What It Measures)
The script uses direct data from the FRED (Federal Reserve Economic Data) to calculate the true state of market funding:
\text{Net Liquidity} = \text{Fed Assets (WALCL)} - \text{Treasury General Account (TGA)} - \text{Reverse Repo (RRP)}
1. Fed Assets (WALCL): The total balance sheet of the Fed (The overall supply of money).
2. Treasury General Account (TGA): Funds the US Treasury collects via bond issuance. When the TGA rises, liquidity is actively drained from the banking system (A major bearish pressure).
3. Overnight Reverse Repo (RRP): Cash parked by banks and money market funds at the Fed, effectively frozen and not contributing to market activity.
How to Interpret Signals
Treat the Net Liquidity line as the market's "Fuel Gauge":
📈 BULLISH SIGNAL (Liquidity Injection): When the Net Liquidity line is rising, money is flowing back into the system, signalling a tailwind for risk assets.
📉 BEARISH SIGNAL (Liquidity Drain): When the line is falling (often due to high TGA balances), cash is being removed. This signals major friction and pressure on price action.
⚠️ DIVERGENCE WARNING: A strong signal is generated when Price (e.g., BTC) rises, but Net Liquidity falls. This macro divergence strongly suggests a major trend reversal or correction is imminent.
Important Notes
Data Source: Data is directly sourced from FRED and updates daily/weekly. This tool is best used for macro analysis and identifying high-level cycles, not short-term scalping.
Disclaimer: Use this indicator as a confirmation tool within your broader strategy. It is not a standalone trading signal.
Systemic Net Liquidity (Macro Fuel for Crypto & Stocks)This indicator tracks Systemic Net Liquidity, the single most important macro factor for determining the long-term trend of risk assets like Bitcoin (BTC) and major indices (S&P 500). It measures the amount of actual cash available in the financial system to chase speculative assets, distinguishing between money that is circulating and money that is locked up at the Federal Reserve.
Mechanism (What It Measures)
The script uses direct data from the FRED (Federal Reserve Economic Data) to calculate the true state of market funding:
\text{Net Liquidity} = \text{Fed Assets (WALCL)} - \text{Treasury General Account (TGA)} - \text{Reverse Repo (RRP)}
1. Fed Assets (WALCL): The total balance sheet of the Fed (The overall supply of money).
2. Treasury General Account (TGA): Funds the US Treasury collects via bond issuance. When the TGA rises, liquidity is actively drained from the banking system (A major bearish pressure).
3. Overnight Reverse Repo (RRP): Cash parked by banks and money market funds at the Fed, effectively frozen and not contributing to market activity.
How to Interpret Signals
Treat the Net Liquidity line as the market's "Fuel Gauge":
📈 BULLISH SIGNAL (Liquidity Injection): When the Net Liquidity line is rising, money is flowing back into the system, signalling a tailwind for risk assets.
📉 BEARISH SIGNAL (Liquidity Drain): When the line is falling (often due to high TGA balances), cash is being removed. This signals major friction and pressure on price action.
⚠️ DIVERGENCE WARNING: A strong signal is generated when Price (e.g., BTC) rises, but Net Liquidity falls. This macro divergence strongly suggests a major trend reversal or correction is imminent.
Important Notes
Data Source: Data is directly sourced from FRED and updates daily/weekly. This tool is best used for macro analysis and identifying high-level cycles, not short-term scalping.
Disclaimer: Use this indicator as a confirmation tool within your broader strategy. It is not a standalone trading signal.
Volume Z-Score// This indicator calculates the Z-Score of trading volume to identify
// statistically significant volume spikes. It uses a dynamic percentile-based
// threshold to highlight extreme volume events.
//
// How it works:
// - Z-Score measures how many standard deviations the current volume is from the mean
// - The threshold line represents the top 1% (99th percentile) of historical Z-Score values
// - When volume Z-Score exceeds the threshold, the line turns red
//
// Use cases:
// - Spot unusual institutional activity or large block trades
// - Identify potential breakout or breakdown points with volume confirmation
// - Filter out noise by focusing only on statistically extreme volume events
//
// Parameters:
// - Period Length: Lookback period for calculating mean and standard deviation
// - Percentile Threshold: Defines the extreme volume cutoff (default 99 = top 1%)
// ===================================
Day Separators Description:
This script visually separates the trading chart by days of the week. Each day is highlighted with a distinct background color or vertical line, making it easier to analyze daily price patterns and trading activity. Useful for spotting trends, comparing daily performance, or planning strategies based on weekday behavior.
Features:
Divides the chart by weekdays (Monday to Sunday).
Optional background shading or vertical lines for each day.
Customizable colors and line styles for better visibility.
Works on any timeframe.
Use Cases:
Identify patterns or anomalies on specific weekdays.
Track performance trends across the week.
Simplify intraday and daily analysis for more informed trading decisions.
HTF Hollow Candle overlayoverlays HTF candle ontop of price so you can watch m1 chart filling up an h4 bar
TenUp Bots S R - Fixed (ta.highest)//@version=5
indicator("TenUp Bots S R - Fixed (ta.highest)", overlay = true)
// Inputs
a = input.int(10, "Sensitivity (bars)", minval = 1, maxval = 9999)
d_pct = input.int(85, "Transparency (%)", minval = 0, maxval = 100)
// Convert 0-100% to 0-255 transparency (color.new uses 0..255)
transp = math.round(d_pct * 255 / 100)
// Colors with transparency applied
resColor = color.new(color.red, transp)
supColor = color.new(color.blue, transp)
// Helper (calculations only)
getRes(len) => ta.highest(high, len)
getSup(len) => ta.lowest(low, len)
// === PLOTS (all in global scope) ===
plot(getRes(a*1), title="Resistance 1", color=resColor, linewidth=2)
plot(getSup(a*1), title="Support 1", color=supColor, linewidth=2)
plot(getRes(a*2), title="Resistance 2", color=resColor, linewidth=2)
plot(getSup(a*2), title="Support 2", color=supColor, linewidth=2)
plot(getRes(a*3), title="Resistance 3", color=resColor, linewidth=2)
plot(getSup(a*3), title="Support 3", color=supColor, linewidth=2)
plot(getRes(a*4), title="Resistance 4", color=resColor, linewidth=2)
plot(getSup(a*4), title="Support 4", color=supColor, linewidth=2)
plot(getRes(a*5), title="Resistance 5", color=resColor, linewidth=2)
plot(getSup(a*5), title="Support 5", color=supColor, linewidth=2)
plot(getRes(a*6), title="Resistance 6", color=resColor, linewidth=2)
plot(getSup(a*6), title="Support 6", color=supColor, linewidth=2)
plot(getRes(a*7), title="Resistance 7", color=resColor, linewidth=2)
plot(getSup(a*7), title="Support 7", color=supColor, linewidth=2)
plot(getRes(a*8), title="Resistance 8", color=resColor, linewidth=2)
plot(getSup(a*8), title="Support 8", color=supColor, linewidth=2)
plot(getRes(a*9), title="Resistance 9", color=resColor, linewidth=2)
plot(getSup(a*9), title="Support 9", color=supColor, linewidth=2)
plot(getRes(a*10), title="Resistance 10", color=resColor, linewidth=2)
plot(getSup(a*10), title="Support 10", color=supColor, linewidth=2)
plot(getRes(a*15), title="Resistance 15", color=resColor, linewidth=2)
plot(getSup(a*15), title="Support 15", color=supColor, linewidth=2)
plot(getRes(a*20), title="Resistance 20", color=resColor, linewidth=2)
plot(getSup(a*20), title="Support 20", color=supColor, linewidth=2)
plot(getRes(a*25), title="Resistance 25", color=resColor, linewidth=2)
plot(getSup(a*25), title="Support 25", color=supColor, linewidth=2)
plot(getRes(a*30), title="Resistance 30", color=resColor, linewidth=2)
plot(getSup(a*30), title="Support 30", color=supColor, linewidth=2)
plot(getRes(a*35), title="Resistance 35", color=resColor, linewidth=2)
plot(getSup(a*35), title="Support 35", color=supColor, linewidth=2)
plot(getRes(a*40), title="Resistance 40", color=resColor, linewidth=2)
plot(getSup(a*40), title="Support 40", color=supColor, linewidth=2)
plot(getRes(a*45), title="Resistance 45", color=resColor, linewidth=2)
plot(getSup(a*45), title="Support 45", color=supColor, linewidth=2)
plot(getRes(a*50), title="Resistance 50", color=resColor, linewidth=2)
plot(getSup(a*50), title="Support 50", color=supColor, linewidth=2)
plot(getRes(a*75), title="Resistance 75", color=resColor, linewidth=2)
plot(getSup(a*75), title="Support 75", color=supColor, linewidth=2)
plot(getRes(a*100), title="Resistance 100", color=resColor, linewidth=2)
plot(getSup(a*100), title="Support 100", color=supColor, linewidth=2)
plot(getRes(a*150), title="Resistance 150", color=resColor, linewidth=2)
plot(getSup(a*150), title="Support 150", color=supColor, linewidth=2)
plot(getRes(a*200), title="Resistance 200", color=resColor, linewidth=2)
plot(getSup(a*200), title="Support 200", color=supColor, linewidth=2)
plot(getRes(a*250), title="Resistance 250", color=resColor, linewidth=2)
plot(getSup(a*250), title="Support 250", color=supColor, linewidth=2)
plot(getRes(a*300), title="Resistance 300", color=resColor, linewidth=2)
plot(getSup(a*300), title="Support 300", color=supColor, linewidth=2)
plot(getRes(a*350), title="Resistance 350", color=resColor, linewidth=2)
plot(getSup(a*350), title="Support 350", color=supColor, linewidth=2)
plot(getRes(a*400), title="Resistance 400", color=resColor, linewidth=2)
plot(getSup(a*400), title="Support 400", color=supColor, linewidth=2)
plot(getRes(a*450), title="Resistance 450", color=resColor, linewidth=2)
plot(getSup(a*450), title="Support 450", color=supColor, linewidth=2)
plot(getRes(a*500), title="Resistance 500", color=resColor, linewidth=2)
plot(getSup(a*500), title="Support 500", color=supColor, linewidth=2)
plot(getRes(a*750), title="Resistance 750", color=resColor, linewidth=2)
plot(getSup(a*750), title="Support 750", color=supColor, linewidth=2)
plot(getRes(a*1000), title="Resistance 1000", color=resColor, linewidth=2)
plot(getSup(a*1000), title="Support 1000", color=supColor, linewidth=2)
plot(getRes(a*1250), title="Resistance 1250", color=resColor, linewidth=2)
plot(getSup(a*1250), title="Support 1250", color=supColor, linewidth=2)
plot(getRes(a*1500), title="Resistance 1500", color=resColor, linewidth=2)
plot(getSup(a*1500), title="Support 1500", color=supColor, linewidth=2)
Z Score k3x3// ===================================
// Z-Score Indicator with Enhanced Visualization
//
// Description:
// This indicator calculates the Z-Score (standard score) of price movements,
// highlighting extreme overbought and oversold conditions with visual alerts.
//
// Features:
// - Dynamic color gradients based on Z-Score values
// - Visual alerts for extreme zones (|Z| > 2)
// - Background highlighting for overbought/oversold areas
// - Shape markers for extreme conditions
// - Customizable period length and standard deviation levels
//
// Interpretation:
// Z > +2: Extreme overbought (red alert)
// Z < -2: Extreme oversold (green alert)
// |Z| < 1: Normal range (neutral colors)
// ===================================
coinjin 정·역배열 대시보드 (Progress+Events)This script analyzes trend alignment using the 5 / 20 / 60 / 112 / 224 / 448 / 896 SMAs,
providing highly precise detection of bullish and bearish stack conditions,
and identifies 12 advanced trend-reversal signals through a multi-timeframe dashboard.
이 스크립트는 5 / 20 / 60 / 112 / 224 / 448 / 896 SMA 기준으로
정배열·역배열 상태를 매우 정교하게 분석하고,
12가지 고급 추세 전환 시그널을 자동 탐지하는 멀티타임프레임 대시보드입니다.
Exchanges OpeningProvides an indicator 5 minutes before New York, London, Frankfurt, Tokyo, Hong Kong or Sydney Stock exchanges open with optional alerts if you create one for the script.
RSI Ensemble Confidence [CHE]RSI Ensemble Confidence — Measures RSI agreement across multiple lengths and price sources
Summary
This indicator does not just show you one RSI — it shows you how strongly dozens of different RSI variants agree with each other right now.
The Confidence line (0–100) is the core idea:
- High Confidence → almost all RSIs see the same thing → clean, reliable situation
- Low Confidence → the RSIs contradict each other → the market is messy, RSI signals are questionable
How it works (exactly as you wanted it described)
1. Multiple RSIs instead of just one
The indicator builds a true ensemble:
- 4 lengths (default 8, 14, 21, 34)
- 6 price sources (Close, Open, High, Low, HL2, OHLC4 – individually switchable)
→ When everything is enabled, up to 24 different RSIs are calculated on every single bar.
These 24 opinions form a real “vote” about the current market state.
2. Mean and dispersion
From all active RSIs it calculates:
- rsiMean → the average opinion of the entire ensemble (orange line)
- rsiStd → how far the individual RSIs deviate from each other
Small rsiStd = they all lie close together → strong agreement
Large rsiStd = they are all over the place → contradiction
3. Confidence (0–100)
The standard deviation is compared to the user parameter “Max expected StdDev” (default 20):
- rsiStd = 0 → Confidence ≈ 100
- rsiStd = maxStd → Confidence ≈ 0
- Everything in between is scaled linearly
If only one RSI is active, Confidence is automatically set to ~80 for practicality.
What you see on the chart
1. Classic reference RSI – blue line (Close, length 14) → your familiar benchmark
2. Ensemble mean – orange line → the true consensus RSI
±1 StdDev band (optional) → shows dispersion directly:
- narrow band = clean, consistent setup
- wide band = the RSIs disagree → caution
3. Confidence line (aqua, 0–100) → your quality meter for any RSI signal
4. StdDev histogram (optional, fuchsia columns) → raw dispersion if you prefer the unscaled value
5. Background coloring
- Greenish ≥ 80 → high agreement
- Orange 60–80 → medium
- Reddish < 40 → strong disagreement
- Transparent below that
6. Two built-in alerts
- High Confidence (crossover 80)
- Low Confidence (crossunder 40)
Why this indicator is practically useful
1. Perfect filter for all RSI strategies
Only trade overbought/oversold, divergences, or failures when Confidence ≥ 70. Skip or reduce size when Confidence < 40.
2. Protection against overinterpretation
You immediately see whether a “beautiful” RSI hook is confirmed by the other 23 variants — or whether it’s just one outlier fooling you.
3. Excellent regime detector
Long periods of high Confidence = clean trends or clear overbought/oversold phases
Constantly low Confidence = choppy, noisy market → RSI becomes almost useless
4. Turns gut feeling into numbers
We all sometimes think “this setup somehow doesn’t feel right”. Now you have the exact number that says why.
Disclaimer
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
Do not use this indicator on Heikin-Ashi, Renko, Kagi, Point-and-Figure, or Range charts, as these chart types can produce unrealistic results for signal markers and alerts.
Best regards and happy trading
Chervolino
20W EMA – Macro Only (Perfectly Clean)Bitcoin 20 week moving average script showing buy / sell signals
Day Trading Signals - Ultimate Pro (Dark Neon + Strong BB Cloud)//@version=5
indicator("Day Trading Signals - Ultimate Pro (Dark Neon + Strong BB Cloud)", overlay=true, max_lines_count=500, max_labels_count=500)
// ===== INPUTS =====
ema_fast_len = input.int(9, "Fast EMA Length")
ema_slow_len = input.int(21, "Slow EMA Length")
rsi_len = input.int(12, "RSI Length")
rsi_overbought = input.int(70, "RSI Overbought Level")
rsi_oversold = input.int(30, "RSI Oversold Level")
bb_len = input.int(20, "Bollinger Bands Length")
bb_mult = input.float(2.0, "Bollinger Bands Multiplier")
sr_len = input.int(15, "Pivot Lookback for Support/Resistance")
min_ema_gap = input.float(0.0, "Minimum EMA Gap to Define Trend", step=0.1)
sr_lifespan = input.int(200, "Bars to Keep S/R Lines")
// Display options
show_bb = input.bool(true, "Show Bollinger Bands?")
show_ema = input.bool(true, "Show EMA Lines?")
show_sr = input.bool(true, "Show Support/Resistance Lines?")
show_bg = input.bool(true, "Show Background Trend Color?")
// ===== COLORS (Dark Neon Theme) =====
neon_teal = color.rgb(0, 255, 200)
neon_purple = color.rgb(180, 95, 255)
neon_orange = color.rgb(255, 160, 60)
neon_yellow = color.rgb(255, 235, 90)
neon_red = color.rgb(255, 70, 110)
neon_gray = color.rgb(140, 140, 160)
sr_support_col = color.rgb(0, 190, 140)
sr_resist_col = color.rgb(255, 90, 120)
// ===== INDICATORS =====
ema_fast = ta.ema(close, ema_fast_len)
ema_slow = ta.ema(close, ema_slow_len)
ema_gap = math.abs(ema_fast - ema_slow)
trend_up = (ema_fast > ema_slow) and (ema_gap > min_ema_gap)
trend_down = (ema_fast < ema_slow) and (ema_gap > min_ema_gap)
trend_flat = ema_gap <= min_ema_gap
rsi = ta.rsi(close, rsi_len)
bb_mid = ta.sma(close, bb_len)
bb_upper = bb_mid + bb_mult * ta.stdev(close, bb_len)
bb_lower = bb_mid - bb_mult * ta.stdev(close, bb_len)
// ===== SUPPORT / RESISTANCE =====
pivot_high = ta.pivothigh(high, sr_len, sr_len)
pivot_low = ta.pivotlow(low, sr_len, sr_len)
var line sup_lines = array.new_line()
var line res_lines = array.new_line()
if show_sr and not na(pivot_low)
l = line.new(bar_index - sr_len, pivot_low, bar_index, pivot_low, color=sr_support_col, width=2, extend=extend.right)
array.push(sup_lines, l)
if show_sr and not na(pivot_high)
l = line.new(bar_index - sr_len, pivot_high, bar_index, pivot_high, color=sr_resist_col, width=2, extend=extend.right)
array.push(res_lines, l)
// Delete old S/R lines
if array.size(sup_lines) > 0
for i = 0 to array.size(sup_lines) - 1
l = array.get(sup_lines, i)
if bar_index - line.get_x2(l) > sr_lifespan
line.delete(l)
array.remove(sup_lines, i)
break
if array.size(res_lines) > 0
for i = 0 to array.size(res_lines) - 1
l = array.get(res_lines, i)
if bar_index - line.get_x2(l) > sr_lifespan
line.delete(l)
array.remove(res_lines, i)
break
// ===== BUY / SELL CONDITIONS =====
buy_cond = trend_up and not trend_flat and ta.crossover(ema_fast, ema_slow) and rsi < rsi_oversold and close < bb_lower
sell_cond = trend_down and not trend_flat and ta.crossunder(ema_fast, ema_slow) and rsi > rsi_overbought and close > bb_upper
// ===== SIGNAL PLOTS =====
plotshape(buy_cond, title="Buy Signal", location=location.belowbar, color=neon_teal, style=shape.labelup, text="BUY", size=size.small)
plotshape(sell_cond, title="Sell Signal", location=location.abovebar, color=neon_red, style=shape.labeldown, text="SELL", size=size.small)
// ===== EMA LINES =====
plot(show_ema ? ema_fast : na, color=neon_orange, title="EMA Fast", linewidth=2)
plot(show_ema ? ema_slow : na, color=neon_purple, title="EMA Slow", linewidth=2)
// ===== STRONG BOLLINGER BAND CLOUD =====
plot_bb_upper = plot(show_bb ? bb_upper : na, color=color.new(neon_yellow, 20), title="BB Upper")
plot_bb_lower = plot(show_bb ? bb_lower : na, color=color.new(neon_gray, 20), title="BB Lower")
plot(bb_mid, color=color.new(neon_gray, 50), title="BB Mid")
// More visible BB cloud (stronger contrast)
bb_cloud_color = trend_up ? color.new(neon_teal, 40) : trend_down ? color.new(neon_red, 40) : color.new(neon_gray, 70)
fill(plot_bb_upper, plot_bb_lower, color=show_bb ? bb_cloud_color : na, title="BB Cloud")
// ===== BACKGROUND COLOR (TREND ZONES) =====
bgcolor(show_bg ? (trend_up ? color.new(neon_teal, 92) : trend_down ? color.new(neon_red, 92) : color.new(neon_gray, 94)) : na)
// ===== ALERTS =====
alertcondition(buy_cond, title="Buy Signal", message="Buy signal triggered. Check chart.")
alertcondition(sell_cond, title="Sell Signal", message="Sell signal triggered. Check chart.")
Chop Meter + Trade Filter 1H/30M/15M (Ace PROFILE v3)💪 How to Actually Use This (The MMXM Way)
1️⃣ Check the Status Before ANY trade
If it says NO TRADE → Do not fight it.
Your psychology stays clean.
2️⃣ If TRADE (1M NO TRADE – 15M CHOP)
Avoid:
1M SIBI/OB
1M BOS/CHOCH
1M SMT
1M Silver Bullet windows
Use only higher-timeframe breaks.
3️⃣ If ALL THREE are NORMAL → Full Go Mode
Every tool is unlocked:
1M microstructure
1M FVG snipes
Killzones
Silver Bullet
SMT timing
MMXM purge setups
This is where your best trades come from.
4️⃣ If 30M is CHOP
Sit tight.
It’s a trap day or compression box.
This one filter alone will save you:
FOMO losses
False expansion traps
Microstructure whipsaws
News fakeouts
Reversal cliffs
Algo snapbacks
🧠 Why This Indicator Works
No indicators.
No RSI.
No Bollinger.
No volume bullshit.
Just structure, time, and compression — exactly how the algorithm trades volatility.
When this tool says NO TRADE, it is telling you:
“This is NOT the moment the algorithm will expand.”
And that’s the whole game.
🔥 Summary
Condition Meaning Action
30M = CHOP 30M box active No trading at all
2+ TF CHOP HTF compression No trading
15M CHOP Micro compression No 1M entries
All NORMAL Expansion conditions Full Go Mode
Advanced Time Dividers & Killzones IndicatorOverview
A comprehensive Pine Script v6 indicator that displays customizable time period dividers and trading session killzones on your chart. Perfect for intraday traders who need clear visual separation of time periods and want to identify key trading sessions.
✨ Features
Time Period Dividers
Weekly Lines: Vertical lines marking the start of each week
Monthly Lines: Vertical lines marking the start of each month
Quarterly Lines: Vertical lines marking the start of each quarter (Q1, Q2, Q3, Q4)
Yearly Lines: Vertical lines marking the start of each year
Trading Session Killzones
London Session: 2:00-5:00 GMT (Blue shaded box)
New York Session: 7:00-10:00 GMT (Green shaded box)
London Close: 10:00-12:00 GMT (Orange shaded box)
Asia Session: 20:00-00:00 GMT (Pink shaded box)
🎨 Customization Options
Display Controls
Toggle each time divider type individually
Toggle each killzone individually
Adjust historical and future display range
Show/hide labels on dividers and killzones
Style Customization
Line Styles: Choose between Solid, Dashed, or Dotted lines
Line Width: Adjustable from 1 to 5 pixels
Colors: Fully customizable colors for each element with transparency control
Label Size: Choose from Tiny, Small, Normal, or Large
Period Settings
Control how many bars to display in the past (0-5000)
Control how many bars to display in the future (0-1000)
📋 Usage Instructions
Add to Chart: Add the indicator to any chart
Select Timeframe: Works best on intraday timeframes (1H, 15min, 5min) for killzones
Customize: Open settings to enable/disable features and customize colors
Trading: Use the dividers to identify time periods and killzones to spot high-liquidity sessions
💡 Trading Applications
Time Dividers
Weekly/Monthly Analysis: Identify major time period transitions
Market Structure: Analyze how price behaves at period boundaries
Event Correlation: Align with economic calendar events
Killzones
High Liquidity Periods: Trade during peak market activity
ICT Strategy: Follows Inner Circle Trader killzone concepts
Session-Based Trading: Focus on specific trading sessions
Volatility Windows: Identify when major moves typically occur
⚙️ Technical Details
Version: Pine Script v6
Type: Overlay indicator
Max Lines: 500 (optimized performance)
Max Boxes: 500 (for killzone visualization)
Timezone: GMT/UTC for killzones
Memory Efficient: Automatic cleanup of old objects
🎯 Best Practices
Combine with Price Action: Use dividers to frame your analysis
Focus on Killzones: Most significant price moves occur during these sessions
Adjust Transparency: Find the right balance between visibility and chart clarity
Use Labels Wisely: Toggle labels on/off based on your needs
Timeframe Selection: Use lower timeframes (≤1H) to see killzones clearly
📝 Notes
Killzone times are in GMT/UTC timezone
Works on all instruments (Forex, Crypto, Stocks, Futures)
Optimized for performance with automatic memory management
Fully compatible with other indicators
🔄 Updates & Support
This indicator is actively maintained. Feel free to suggest improvements or report issues in the comments.
Alchemist Ranges By KousickAlchemist Ranges By Kousick
A Indicator For Alchemist Ranges and How He Trades in time
amir Liquidity Sweeps [amir]this indicator is from luxalgon i think this is the code that made this incdicator never get destroyed by aanyone
VIX Counter-Trend StrategyVIX Panic Index VOO Bottom-Fishing Strategy
📊 Strategy Overview
This strategy utilizes the VIX (Volatility Index) as a market sentiment indicator to help investors rationally enter positions during periods of extreme market panic, using objective technical signals to avoid emotional decision-making. It is designed to capture rebound opportunities in VOO (or other US equity ETFs) following panic-driven selloffs.
🎯 Entry and Exit Conditions
Entry Conditions (both must be met):
VIX reaches or exceeds the set threshold (default 25, adjustable)
VIX death crosses below its moving average (default 5-day MA), confirming panic sentiment is beginning to recede
Exit Conditions (three modes available):
Holding Period Mode: Exit after holding for the set number of days (default 100 days)
VIX Decline Mode: Exit when VIX falls below the set threshold (default 20)
Either Condition Mode: Exit when either condition is met
⚠️ Important Warnings
Not Suitable for Leveraged ETF Bottom-Fishing: VIX reflects market volatility. Using leveraged ETFs (such as TQQQ, SOXL) increases risk due to decay effects and greater volatility, potentially causing larger losses during panic periods.
Bear Market Inaccuracy Risk: This strategy assumes markets will rebound from panic. However, during prolonged bear markets or systemic risks (such as the 2008 financial crisis or 2022 rate hike cycle), VIX may remain elevated for extended periods, triggering multiple buy signals while prices continue declining, rendering the strategy ineffective.
Recommended to Combine with Market Trend Analysis: Works better in bull market conditions. In bear markets, consider raising VIX thresholds or suspending use.
For Reference Only, Not Investment Advice: Historical performance does not guarantee future results. Please use cautiously according to your personal risk tolerance.
VIX 恐慌指數 VOO 抄底策略
📊 策略目的
本策略利用 VIX 恐慌指數作為市場情緒指標,幫助投資人在市場極度恐慌時理性進場抄底,並透過客觀的技術訊號避免情緒化操作。適合用於捕捉 VOO(或其他美股 ETF)在恐慌性下跌後的反彈機會。
🎯 進出場條件
進場條件(同時滿足):
VIX 指數達到設定門檻以上(預設 25,可調整)
VIX 死亡交叉其均線(預設 5 日均線),確認恐慌情緒開始回落
出場條件(三種模式可選):
持有天數模式:持有達到設定天數後出場(預設 100 天)
VIX 回落模式:VIX 降至設定門檻以下時出場(預設 20)
兩者皆可模式:任一條件滿足即出場
⚠️ 重要警語
不適合槓桿型 ETF 抄底:VIX 反映的是市場波動度,使用槓桿 ETF(如 TQQQ、SOXL)會因為衰減效應和更大波動而增加風險,可能在恐慌期間造成更大虧損。
空頭市場失準風險:本策略假設市場會從恐慌中反彈,但在長期空頭或系統性風險(如 2008 金融危機、2022 升息循環)中,VIX 可能長期處於高檔,多次觸發買入訊號卻持續下跌,導致策略失效。
建議搭配大盤趨勢判斷:在多頭格局中使用效果較佳,空頭格局建議提高 VIX 門檻或暫停使用。
僅供參考,非投資建議:歷史績效不代表未來表現,請依個人風險承受度謹慎使用。






















