BTC Dashboard D / 4H / 1H (simple)//@version=5
indicator("BTC Dashboard D / 4H / 1H (simple)", overlay = true)
// ---------- Réglages ----------
rsiLen = 14
emaLen50 = 50
emaLen200 = 200
// Petite fonction pour formater les nombres
f_fmt(float v) =>
str.tostring(v, format.mintick)
// ---------- TIMEFRAMES ----------
tfD = "D"
tf4H = "240"
tf1H = "60"
// ---------- DAILY ----------
closeD = request.security(syminfo.tickerid, tfD, close)
ema50D = request.security(syminfo.tickerid, tfD, ta.ema(close, emaLen50))
ema200D = request.security(syminfo.tickerid, tfD, ta.ema(close, emaLen200))
rsiD = request.security(syminfo.tickerid, tfD, ta.rsi(close, rsiLen))
// ---------- 4H ----------
close4H = request.security(syminfo.tickerid, tf4H, close)
ema504H = request.security(syminfo.tickerid, tf4H, ta.ema(close, emaLen50))
ema2004H = request.security(syminfo.tickerid, tf4H, ta.ema(close, emaLen200))
rsi4H = request.security(syminfo.tickerid, tf4H, ta.rsi(close, rsiLen))
// ---------- 1H ----------
close1H = request.security(syminfo.tickerid, tf1H, close)
ema501H = request.security(syminfo.tickerid, tf1H, ta.ema(close, emaLen50))
ema2001H = request.security(syminfo.tickerid, tf1H, ta.ema(close, emaLen200))
rsi1H = request.security(syminfo.tickerid, tf1H, ta.rsi(close, rsiLen))
// ---------- TABLE ----------
var table t = table.new(position.top_right, 4, 4, border_width = 1)
if barstate.islast
// Ligne d’en-tête
table.cell(t, 0, 0, "TF", text_color = color.white, bgcolor = color.new(color.black, 0))
table.cell(t, 0, 1, "Close", text_color = color.white, bgcolor = color.new(color.black, 0))
table.cell(t, 0, 2, "EMA50 / EMA200", text_color = color.white, bgcolor = color.new(color.black, 0))
table.cell(t, 0, 3, "RSI", text_color = color.white, bgcolor = color.new(color.black, 0))
// ----- DAILY -----
rowD = 1
table.cell(t, rowD, 0, "D", text_color = color.yellow, bgcolor = color.new(color.blue, 70))
table.cell(t, rowD, 1, f_fmt(closeD))
table.cell(t, rowD, 2, "50: " + f_fmt(ema50D) + " 200: " + f_fmt(ema200D))
table.cell(t, rowD, 3, f_fmt(rsiD))
// ----- 4H -----
row4 = 2
table.cell(t, row4, 0, "4H", text_color = color.white, bgcolor = color.new(color.teal, 70))
table.cell(t, row4, 1, f_fmt(close4H))
table.cell(t, row4, 2, "50: " + f_fmt(ema504H) + " 200: " + f_fmt(ema2004H))
table.cell(t, row4, 3, f_fmt(rsi4H))
// ----- 1H -----
row1 = 3
table.cell(t, row1, 0, "1H", text_color = color.white, bgcolor = color.new(color.green, 70))
table.cell(t, row1, 1, f_fmt(close1H))
table.cell(t, row1, 2, "50: " + f_fmt(ema501H) + " 200: " + f_fmt(ema2001H))
table.cell(t, row1, 3, f_fmt(rsi1H))
نماذج فنيه
PIVOT AND ICHIMOKU BACKGROUND BY PRANOJIT DEYIt shows pivot bias in relation to day open line and it also shows ichimoku bullish trend background. good for option buyers to understand market bias.
MA 9/21/50/100/200//@version=5
indicator("MA 9/21/50/100/200", overlay=true)
ma9 = ta.sma(close, 9)
ma21 = ta.sma(close, 21)
ma50 = ta.sma(close, 50)
ma100 = ta.sma(close, 100)
ma200 = ta.sma(close, 200)
plot(ma9, color=color.new(color.yellow, 0), title="MA 9")
plot(ma21, color=color.new(color.orange, 0), title="MA 21")
plot(ma50, color=color.new(color.blue, 0), title="MA 50")
plot(ma100, color=color.new(color.green, 0), title="MA 100")
plot(ma200, color=color.new(color.red, 0), title="MA 200")
ATR Trailing Stop (Long or Short Selectable)The ATR Trailing Stop (Long or Short Selectable) will start calculating on a set date that you specify. This is great because you want to trail the price from the breakout day or even after exceeding specific price level (can be your breakeven level or even to capture more of the upside after the price target is met).
Entry price: If you act at the close of the day, you can leave this value as 0 and it will take the close of the day for the initial protective stop-loss calculation. You can choose to add a value such as the pattern boundary and in that case it will subtract the initial protective stop-loss from the pattern boundary and not the close of the day. If you use a scaling in tactic during the day (buying in tranches intraday as the breakout takes place) and your average purchase price is different than the close of the day, you can also plug that number in to calculate the initial protective stop-loss.
This is a modified version as many followers asked for ATR trailing for short setups. Now you can select the Long/Short trade setup from the drop down menu.
ATR period: You can select the ATR period. It can be 10 day, 14 day or 30 day or any ATR period of your choice.
ATR Multiplier for Stop-loss: This is the multiplier that you want to trail the price with. From the highest level price reached it will trail the price with a 3 x ATR () distance. The higher the number, the wider the trailing stop-loss. A multiplier of 1 will trail the price so close that and adverse movement can result in triggering the stop-loss.
Custom Value for First day Trailing Stop: This is my favorite part. For aggressive risk management, your initial protective stop can be smaller than what the ATR Trailing Stop will use in its calculation after entry day. In this case you can take 1xATR () or even with FX and Futures you can apply 0.5xATR() as the first day to calculate initial protective stop. The protective stop turns into a trailing stop after the first day.
Pin Bar Highlighter//@version=5
indicator("Pin Bar Highlighter", overlay=true)
body = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
bullPin = (lowerWick >= body * 2) and (close > open)
bearPin = (upperWick >= body * 2) and (close < open)
bullColor = color.rgb(10, 20, 80)
bearColor = color.rgb(255, 20, 150)
barcolor(bullPin ? bullColor : bearPin ? bearColor : na)
Yit's Risk CalculatorIntroducing a risk a bulletproof risk calculator.
I'm tired of sitting on my brokerage, messing with my shares to buy while price action leaves me in the dust.
For my breakout strategy execution is everything i dont have time to stop and think.
within the Indicator settings you have free reign to change account size and risk%
*the stop loss is glued to the low of the day*
BOS/CHoCH Market Structure with Order BlocksCHoCH • BOS • Market Structure Suite with Institutional Order Blocks (Pine Script v6)
This advanced market-structure indicator is designed for traders who rely on clean, rule-based price action. It automatically identifies structural shifts, confirms major trend transitions, and highlights institutional points of interest such as order blocks. Built with precision and clarity, the tool provides multi-layered insight without cluttering the chart.
Key Features
✔ Break of Structure (BOS) Detection
Detects bullish and bearish BOS with strict candle-close confirmation.
Draws colored lines:
Green BOS line when price closes above the previous high.
Red BOS line when price closes below the previous low.
BOS lines automatically label themselves for quick visual reference.
✔ Change of Character (CHoCH)
Identifies the earliest sign of a potential trend reversal.
Prints green CHoCH for bullish shifts and red CHoCH for bearish shifts.
Helps traders anticipate new market phases with precision.
✔ Swing Structure Labels (HH, HL, LH, LL)
Automatically marks all confirmed swing points:
HH, HL (green) for bullish structure
LH, LL (red) for bearish structure
Uses tiny, clean labels to keep the chart readable.
✔ Institutional Order Blocks (Bullish & Bearish)
Identifies valid order blocks using institutional logic.
Bullish Order Blocks: highlights the last bearish candle before bullish displacement.
Bearish Order Blocks: highlights the last bullish candle before bearish displacement.
Draws automatic extended boxes:
Red boxes for bullish order blocks
Blue boxes for bearish order blocks
Boxes extend to the right until mitigation occurs.
✔ Timeframe Filtering for Order Blocks
Order blocks only appear on higher timeframes (1H → Monthly), reducing noise.
Automatically hides order-block zones on lower timeframes.
✔ Fully Customizable Settings
Enable or disable BOS, CHoCH, swing labels, or order blocks.
Adjust colors, line width, font size, transparency, and extension options.
Set the number of order block boxes to keep on screen.
Clean user interface with intuitive controls.
✔ Built for Reliability
Uses defensive coding to prevent runtime errors.
Efficient pivot-handling, minimal label clutter, and safe object management.
Suitable for intraday, swing, and smart money concept traders.
AnAn FastKnife MNQ • V7 PRO (AI Signals + R/R + Dashboard)ai script developed to test the market and the speed and the volatility an the important signals
Fair Value Gaps (FVG)This indicator automatically detects Fair Value Gaps (FVGs) using the classic 3-candle structure (ICT-style).
It is designed for traders who want clean charts and relevant FVGs only, without the usual clutter from past sessions or tiny, meaningless gaps.
Key Features
• Bullish & Bearish FVG detection
Identifies imbalances where price fails to trade efficiently between candles.
• Automatic FVG removal when filled
As soon as price trades back into the gap, the box is deleted in real time – no more outdated zones on the chart.
• Only shows FVGs from the current session
At the start of each new session, all previous FVGs are cleared.
Perfect for intraday traders who only care about today’s liquidity map.
• Flexible minimum gap size filter
Avoid noise by filtering FVGs using one of three modes:
Ticks (based on market tick size)
Percent (relative to current price)
Points (absolute price distance)
• Right-extension option
Keep gaps extended forward in time or limit them to the candles that created them.
Why This Indicator?
Many FVG indicators overwhelm the chart with zones from previous days or tiny imbalances that don’t matter.
This version keeps things clean, meaningful, and real-time accurate, ideal for day traders who rely on market structure and liquidity.
Futures Momentum Scanner – jyoti//@version=5
indicator("Futures Momentum Scanner – Avvu Edition", overlay=false, max_lines_count=500)
//------------------------------
// USER INPUTS
//------------------------------
rsiLen = input.int(14, "RSI Length")
macdFast = input.int(12, "MACD Fast")
macdSlow = input.int(26, "MACD Slow")
macdSignal = input.int(9, "MACD Signal")
stLength = input.int(10, "Supertrend Length")
stMult = input.float(3.0, "Supertrend Multiplier")
//------------------------------
// SUPER TREND
//------------------------------
= ta.supertrend(stMult, stLength)
trendUp = stDirection == 1
//------------------------------
// RSI
//------------------------------
rsi = ta.rsi(close, rsiLen)
rsiBull = rsi > 50 and rsi < 65
//------------------------------
// MACD
//------------------------------
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdBull = macd > signal and macd > 0
//------------------------------
// MOVING AVERAGE TREND
//------------------------------
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
trendStack = ema20 > ema50 and ema50 > ema200
//------------------------------
// BREAKOUT LOGIC
//------------------------------
prevHigh = ta.highest(high, 20)
breakout = close > prevHigh
//------------------------------
// FINAL SCANNER LOGIC
//------------------------------
bullishCandidate = trendUp and rsiBull and macdBull and trendStack and breakout
//------------------------------
// TABLE OUTPUT FOR SCANNER FEEL
//------------------------------
var table t = table.new(position.top_right, 1, 1)
if barstate.islast
msg = bullishCandidate ? "✔ BUY Candidate" : "– Not a Setup"
table.cell(t, 0, 0, msg, bgcolor=bullishCandidate ? color.new(color.green, 0) : color.new(color.red, 70))
//------------------------------
// ALERT
//------------------------------
alertcondition(bullishCandidate, title="Scanner Trigger", message="This stock meets Avvu's futures scanner criteria!")
Auto Technical Analysis + Labels + Candle PatternsAuto Technical Analysis + Labels + Candle Patterns
A complete real-time technical analysis assistant that automatically detects trend, support/resistance, breakouts, volume spikes, and candlestick patterns — all visualized directly on your chart with clean labels.
This indicator is designed as an “automatic chart reader”, removing the need to manually draw levels or analyze common price-action signals. It is lightweight, fast, and highly useful for scalpers, day traders, and swing traders.
Features
1. Trend Detection (EMA-Based)
The script uses a fast EMA (5) and slow EMA (13) to determine trend direction.
It plots:
Fast MA (5)
Slow MA (13)
A dynamic label showing:
📈 Uptrend
📉 Downtrend
Trend labels automatically update on each bar.
2. Automatic Support & Resistance (Pivot-Based)
The indicator dynamically identifies swing highs and swing lows using pivot logic.
For each pivot:
Draws dashed S/R lines
Adds color-coded labels:
🟥 Resistance
🟩 Support
Up to 5 levels per side are auto-managed to avoid clutter. Oldest levels are deleted automatically.
3. Breakout & Breakdown Detection
When price crosses the nearest active support/resistance level:
Break↑ labels for bullish breakout
Break↓ labels for bearish breakdown
A second set of “recent” labels (“🟢 Breakout ↑” / “🔴 Breakdown ↓”) is also displayed, managed by a queue so only the most relevant signals remain visible.
4. Volume Spike Detection
The script identifies unusual volume activity using:
volume > SMA(volume, 20) × 2
If a spike occurs:
A yellow dot is plotted below the bar
A “🟡 Volume Spike” label appears
This helps confirm breakouts and reversals.
5. Candlestick Pattern Detection
The script automatically detects key reversal candles:
🟢 Bullish Engulfing
🔴 Bearish Engulfing
🔨 Hammer
💥 Shooting Star
To avoid repeated signals, patterns near the same price level are filtered using a tolerance threshold.
6. Alerts Included
You can set alerts for:
Bullish Breakout
Bearish Breakdown
Volume Spike
Ideal for real-time monitoring across multiple tickers.
What This Indicator Helps You See Instantly
Market trend direction
Key S/R levels
Breakout/breakdown opportunities
Volume confirmation
Major candle pattern reversals
Clean visual labels with automated clutter control
Great for:
Scalping
Intraday trading
Swing analysis
Reversal spotting
Breakout momentum trading
Recommended Settings
Timeframes: 1-minute to Daily
Assets: Stocks, Crypto, Forex, Indices
Ideal for traders who want fast, automated chart interpretation.
Session High/LowSession High Low
Trading Sessions
Forex Sessions (oder Futures Sessions, je nachdem, was du handelst)
Pine Script Indicator
Intraday Levels
Market Sessions
High Low Lines
Day Trading Tools
A+ Model - Cave EducationHere is a comprehensive and detailed explanation of the "A+ Model - Cave Education" Pine Script code.
This script is a sophisticated technical analysis tool designed for TradingView. It assists traders in identifying specific institutional time windows, price ranges (sessions), and "Macro" volatility periods based on the ICT (Inner Circle Trader) or similar time-based trading concepts.
Below is the breakdown of how the code functions, organized by its logic sections.
1. General Overview
The script is an overlay indicator (it sits directly on the price chart). Its primary purpose is to:
Highlight a specific trading session (The "A+ Box") and mark its High/Low.
Mark key institutional times (07:00 NY and 09:30 NY Open).
Identify "Macro" windows (specific 20-minute periods where algorithms are active) and draw dynamic ranges around them based on volatility (ATR).
Project future times onto the chart to help the trader prepare for the next day.
2. Settings & Inputs (User Configuration)
The code begins by defining a vast array of user inputs, grouped for better usability:
General Time & Box: Allows the user to define the "A+ Session" time (default 20:00-00:00) and the Time Zone (UTC-5/New York). It also handles the visual style (colors) of the session box.
Visibility: A crucial performance and visual clutter setting. boxDays limits how far back the A+ boxes and time lines are drawn (default 14 days). Macros are strictly limited to the current week to prevent chart lagging.
Line & Text Controls: Every visual element (A+ lines, NY markers, Macros) has toggles (input.bool) to show/hide the lines or the text labels separately.
Macro Settings: Defines the time windows for three separate macros and an ATR Multiplier. The ATR multiplier determines how wide the channel lines are drawn around the macro price action.
3. Logic Breakdown by Section
Section 1: The "A+ Draw" Box (Session Range)
This is the core of the A+ Model.
Logic: The script checks if the current bar is within the user-defined sessionTime.
Box Creation:
When the session starts, it initializes a new Box (box.new).
Throughout the session, it continuously updates the Box's Top (Highest High) and Bottom (Lowest Low) to encompass the full range of that time period.
Extension Lines (Support/Resistance):
Once the session ends, the script draws two horizontal lines: one from the Session High and one from the Session Low.
Smart Break Logic: These lines are active (highActive, lowActive). They extend to the right until the price breaks them (High line is broken by a higher price, Low line by a lower price). This helps traders see if the session range is being respected or broken later in the day.
Section 2: Time Lines (NY Midnight & Open)
This section marks vertical reference points.
It checks for specific times: 07:00 and 09:30 (in the user's timezone).
If the current bar matches these times, it draws a vertical line (line.new) covering the High/Low of that bar and places a label (e.g., "NY." or "09:30") above it.
This helps the trader orient themselves regarding the New York session Open and the "Killzone" start.
Section 3: Macros (Volatility Windows)
This is the most complex calculation in the script.
Definition: Macros are specific time windows (e.g., 09:50–10:10) where price delivery is often accelerated.
Visibility Rule: To keep the script fast, this only runs if isCurrentWeek is true.
ATR Offset: The script calculates the Average True Range (ATR). It uses this to create a "channel" around the price.
Drawing Logic:
When a Macro time starts, the script tracks the Highest High and Lowest Low inside that specific 20-minute window.
It draws parallel horizontal lines above and below these prices.
The Twist: The lines are not drawn at the High/Low. They are offset by ATR * Multiplier. This creates a wider "zone" around the macro price action, visually indicating a volatility range.
Section 4: Future Projection (Tomorrow)
This feature is for planning ahead.
It runs only on the last bar of the chart (barstate.islast).
It calculates the timestamps for the next occurrence of the key times (07:00, 09:30, and all three Macros).
It draws vertical lines into the future (empty space on the right of the chart).
Benefit: The trader can see exactly where 09:30 or the next Macro will occur on the timeline before the candles even print.
4. Helper Functions
The code uses custom functions to keep the logic clean:
f_drawFuture(...): A standardized function to draw the future vertical lines and labels so the code doesn't have to repeat itself for every single time marker.
isStartTime(...) & isInTime(...): Shorthand functions to check if the current candle belongs to a specific session string (like "0950-1010").
Summary of Improvements in this Version
Compared to a standard indicator, this script is highly optimized:
Text Control: You can turn off text labels while keeping the lines (or vice versa).
Performance: It limits historical drawing (only 14 days back for boxes, only this week for macros) to prevent "Maximum Line Count" errors in Pine Script.
Visual Clarity: It uses different colors for different Macros (Blue, Red, Orange) to make them instantly distinguishable.
1小时区域背景颜色// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) creativecommons.org
// © LuxAlgo
//@version=5
indicator("Sessions ", "LuxAlgo - Sessions", overlay = true, max_bars_back = 500, max_lines_count = 500, max_boxes_count = 500, max_labels_count = 500)
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
//Session A
show_sesa = input(true, '', inline = 'sesa', group = 'Session A')
sesa_txt = input('New York', '', inline = 'sesa', group = 'Session A')
sesa_ses = input.session('1300-2200', '', inline = 'sesa', group = 'Session A')
sesa_css = input.color(#ff5d00, '', inline = 'sesa', group = 'Session A')
sesa_range = input(true, 'Range', inline = 'sesa_overlays', group = 'Session A')
sesa_tl = input(false, 'Trendline', inline = 'sesa_overlays', group = 'Session A')
sesa_avg = input(false, 'Mean', inline = 'sesa_overlays', group = 'Session A')
sesa_vwap = input(false, 'VWAP', inline = 'sesa_overlays', group = 'Session A')
sesa_maxmin = input(false, 'Max/Min', inline = 'sesa_overlays', group = 'Session A')
//Session B
show_sesb = input(true, '', inline = 'sesb', group = 'Session B')
sesb_txt = input('London', '', inline = 'sesb', group = 'Session B')
sesb_ses = input.session('0700-1600', '', inline = 'sesb', group = 'Session B')
sesb_css = input.color(#2157f3, '', inline = 'sesb', group = 'Session B')
sesb_range = input(true, 'Range', inline = 'sesb_overlays', group = 'Session B')
sesb_tl = input(false, 'Trendline', inline = 'sesb_overlays', group = 'Session B')
sesb_avg = input(false, 'Mean', inline = 'sesb_overlays', group = 'Session B')
sesb_vwap = input(false, 'VWAP', inline = 'sesb_overlays', group = 'Session B')
sesb_maxmin = input(false, 'Max/Min', inline = 'sesb_overlays', group = 'Session B')
//Session C
show_sesc = input(true, '', inline = 'sesc', group = 'Session C')
sesc_txt = input('Tokyo', '', inline = 'sesc', group = 'Session C')
sesc_ses = input.session('0000-0900', '', inline = 'sesc', group = 'Session C')
sesc_css = input.color(#e91e63, '', inline = 'sesc', group = 'Session C')
sesc_range = input(true, 'Range', inline = 'sesc_overlays', group = 'Session C')
sesc_tl = input(false, 'Trendline', inline = 'sesc_overlays', group = 'Session C')
sesc_avg = input(false, 'Mean', inline = 'sesc_overlays', group = 'Session C')
sesc_vwap = input(false, 'VWAP', inline = 'sesc_overlays', group = 'Session C')
sesc_maxmin = input(false, 'Max/Min', inline = 'sesc_overlays', group = 'Session C')
//Session D
show_sesd = input(true, '', inline = 'sesd', group = 'Session D')
sesd_txt = input('Sydney', '', inline = 'sesd', group = 'Session D')
sesd_ses = input.session('2100-0600', '', inline = 'sesd', group = 'Session D')
sesd_css = input.color(#ffeb3b, '', inline = 'sesd', group = 'Session D')
sesd_range = input(true, 'Range', inline = 'sesd_overlays', group = 'Session D')
sesd_tl = input(false, 'Trendline', inline = 'sesd_overlays', group = 'Session D')
sesd_avg = input(false, 'Mean', inline = 'sesd_overlays', group = 'Session D')
sesd_vwap = input(false, 'VWAP', inline = 'sesd_overlays', group = 'Session D')
sesd_maxmin = input(false, 'Max/Min', inline = 'sesd_overlays', group = 'Session D')
//Timezones
tz_incr = input.int(0, 'UTC (+/-)', group = 'Timezone')
use_exchange = input(false, 'Use Exchange Timezone', group = 'Timezone')
//Ranges Options
bg_transp = input.float(90, 'Range Area Transparency', group = 'Ranges Settings')
show_outline = input(true, 'Range Outline', group = 'Ranges Settings')
show_txt = input(true, 'Range Label', group = 'Ranges Settings')
God Fad Strategy"This strategy is developed for educational and testing purposes, originally conceptualized by Akash Khadse Sir from TMT Academy. Access is restricted to TMT Academy students only. The indicator monitors Market Structure Shifts following Higher Timeframe
Support Resistance📌 1. Indicator Name
Premium Auto Support & Resistance
📌 2. One-Line Description
An automated S/R system that generates support and resistance zones based on swing highs and lows, displaying them in a premium visual style directly on the chart.
📌 3. Overall Summary (7+ lines)
This indicator automatically detects price levels where the market has repeatedly reacted and generates support and resistance zones.
Instead of simple horizontal lines, it visualizes reaction ranges as zones, helping traders clearly understand the actual price areas where activity occurs.
It uses swing points (high/low pivots) as the fundamental basis and continuously updates only the most meaningful recent S/R levels.
A smoothing process is applied, reducing noise and creating more natural, reliable S/R zones.
Support and resistance are displayed as filled transparency-based zones, enabling intuitive identification of zone strength and market position.
When price touches one of these zones, a small signal appears to highlight potential reversal points.
All elements are plotted directly over the candles with overlay=true, making it an instantly usable and visually premium tool.
📌 4. Advantages (6 items)
① Automatic Swing-Based S/R Detection
Automatically analyzes key pivot points and extracts only the most meaningful support and resistance levels.
② Support/Resistance Zone Structure
Provides intuitive reaction ranges instead of single lines, making it far more practical for real trading.
③ Smooth Premium-Style Lines
S/R lines are smoothed to remove noise, maintaining a natural and refined premium visual appearance.
④ Automatic Candle-Touch Alerts
Displays signals whenever price touches support or resistance, helping you quickly identify potential reversal areas.
⑤ Overlay-Based Immediate Clarity
Drawn directly onto the chart without occupying indicator windows, keeping visual focus on price action.
⑥ Simple Yet Powerful Framework
A pivot + smoothing + zone combination that strengthens automatic S/R detection while remaining easy for beginners to use.
Straddle and Strangle Premium (AlgoStraddle)# Straddle and Strangle Indicator
## Overview
The **Straddle and Strangle** indicator is a powerful tool designed for options traders to analyze the combined premium behavior of Straddle and Strangle strategies on Indian indices (NIFTY, BANKNIFTY, FINNIFTY, etc.). Unlike simple premium adders, this indicator visualizes the **combined price action as a true candlestick chart**, allowing for precise technical analysis on the strategy itself.
It integrates essential technical indicators—SuperTrend, VWAP, Moving Averages, and Dynamic Support/Resistance—directly onto the combined premium chart, helping traders make informed decisions based on the net value of their positions.
## Key Features
### 1. Accurate Combined Premium Chart
- **True Candlesticks**: Displays the combined Open, High, Low, and Close of the CE and PE options.
- **Spread Ticker Logic**: Uses TradingView's spread syntax (e.g., `NIFTY25DEC26000C + NIFTY25DEC26000P`) to ensure mathematically accurate High/Low calculations, avoiding the "fake wicks" common in simple addition scripts.
- **Toggle View**: Switch between a clean Candlestick chart and a simple Line chart.
### 2. Comprehensive Premium Table (5-Strike Ladder)
- Displays a real-time table on the chart overlay.
- Shows the **Selected Strike** (Center) plus **2 Strikes Above** and **2 Strikes Below**.
- For each strike, view the individual **CE Price**, **PE Price**, and **Combined Premium**.
- Helps in quickly spotting better premiums or potential adjustments without changing inputs.
### 3. Built-in Technical Analysis
Analyze the combined premium just like a regular stock:
- **SuperTrend**: Identifies the trend direction (Bullish/Bearish) of the combined premium.
- **VWAP (Volume Weighted Average Price)**: A key benchmark for intraday direction.
- **Moving Averages**: Configurable SMA, EMA, WMA, or RMA to track momentum.
- **ATR Stop Loss**: Dynamic trailing stop-loss levels based on volatility.
- **Dynamic Support & Resistance**: Automatically plots Swing Highs and Swing Lows to identify breakout or breakdown levels.
### 4. Flexible Strategy Selection
- **Fixed Straddle**: Select a single strike for both CE and PE.
- **Fixed Strangle**: Select different strikes for CE and PE.
- **Multi-Index Support**: Ready-to-use presets for NIFTY, BANKNIFTY, FINNIFTY, MIDCPNIFTY, SENSEX, and BANKEX.
- **Custom Symbol**: Option to manually input any other symbol.
## How to Use
1. **Select Chart Type**: Choose between "Fixed Straddle" or "Fixed Strangle".
2. **Set Symbol & Expiry**: Choose your index (e.g., NIFTY) and enter the Expiry Date (YYYY-MM-DD).
3. **Enter Strikes**:
* For **Straddle**: Enter the ATM strike.
* For **Strangle**: Enter the specific CE and PE strikes.
4. **Analyze**:
* Use the **Candlestick Chart** to read price action.
* Watch for **SuperTrend** flips for trend changes.
* Use **VWAP** as a dynamic support/resistance reference.
* Monitor the **Table** to compare premiums across nearby strikes.
## Alerts
The indicator includes built-in alert conditions for automation:
- **SuperTrend Change**: Bullish/Bearish flips.
- **VWAP Cross**: Price crossing above or below VWAP.
- **Support/Resistance Break**: Price breaking key swing levels.
---
*Designed for precision options analysis.*
Filter Trend1. Indicator Name
Premium EMA Ribbon Filter (Pro Version)
(Advanced Trend & Momentum Filtering System Based on EMA Ribbons)
2. One-Line Introduction
A professional trend-analysis indicator that blends an advanced noise-filtering algorithm with an EMA ribbon system to extract only the pure bullish/bearish trend while smoothing out market noise.
3. Overall Description (7+ lines)
The Premium EMA Ribbon Filter is more than just a set of EMAs.
It analyzes the structure of a fast, medium, and slow EMA ribbon—along with the spacing and alignment between them—to determine whether the market is in a bullish trend, bearish trend, or a neutral/noise-heavy zone.
The core of this indicator is its noise-reduction algorithm and trend-strength calculation system.
Instead of relying on simple EMA cross signals, it evaluates how consistently the ribbon maintains bullish/bearish alignment over a specified period and highlights only strong trends with color coding, while weak or noisy areas are displayed in gray.
This helps traders avoid confusing or false signals and clearly focus only on the “meaningful zones.”
A Triple-Smoothing System is applied to create smoother, more refined ribbon movements, forming a stable “premium trend curve” that is less affected by short-term volatility.
As a result, this indicator works effectively for scalping, swing trading, and long-term trend following—staying true to the principle of removing noise and highlighting only the core market flow.
4. Short Advantages (6 items)
① Complete Noise Filtering
Using EMA ribbon comparison + tolerance logic, false reversals are largely eliminated, leaving only stable trend phases.
② Highly Readable Color System
Bullish trends are mint, bearish trends are red, and neutral/noise zones are gray—instantly visualizing market conditions.
③ Trend Strength Visualization
Not only trend direction but also trend strength is displayed via dynamic color transparency.
④ Smooth, Premium-Style Ribbon Design
Triple-smoothing creates a refined, luxury-level smoothness in movement.
⑤ Works Across All Timeframes
From 1-minute scalping to daily/weekly macro trend analysis.
⑥ Excellent Real-Trading Compatibility
Works extremely well when combined with ATR, SuperTrend, and volume-based indicators.
Indicator Manual (Required Section)
📌 Understanding the Core Concept
The indicator uses three EMAs (e.g., 20/50/100) arranged as a ribbon to analyze the structural alignment of the trend.
When the EMAs are cleanly aligned Top → Middle → Bottom, the market is in a bullish trend.
When aligned Bottom → Middle → Top, the market is in a bearish trend.
The indicator further evaluates the ribbon spread (gap) and the consistency of alignment to compute trend strength.
Noisy market conditions are shaded gray to clearly indicate “uncertain/indecisive” zones.
⚙️ Settings Description
Option Description
Fast EMA Most sensitive EMA; detects early trend signals
Mid EMA Stabilizes the primary trend direction
Slow EMA Defines the broader, long-term trend flow
Trend Lookback The period used to analyze trend strength
Noise Tolerance (%) Higher values = stronger noise removal
Smoothing Steps Controls how smooth the ribbon becomes
📈 Example Recognition
A bullish continuation/entry scenario forms when:
EMAs align in the order Fast → Mid → Slow (top side)
Ribbon color shifts into mint (strong bullish trend)
The ribbon begins to expand while price stays above the ribbon
📉 Example Recognition
A bearish continuation/entry occurs when:
EMAs align Fast → Mid → Slow (bottom side)
Ribbon color remains red
After contracting, the ribbon expands again during renewed downside strength
🧪 Recommended Usage
Combine with volume-based indicators (OBV, Volume Profile) → enhanced strong-trend detection
Use with SuperTrend or ATR Stop → clearer stop-loss placement
Combine with RSI/Stoch → avoid counter-trend entries in overheated conditions
Higher leverage traders should use higher tolerance settings
🔒 Cautions
EMA ribbons are trend-following tools; signals may weaken in ranging/sideways markets.
Never rely solely on this indicator—always confirm with volume, price patterns, or structure.
Very low Lookback values may cause excessive re-entry signals.
In high-volatility environments, ribbon spacing can contract/expand rapidly—use with caution.
ICT Key Levels: PDH / PDL / Daily Open//@version=5
indicator("ICT Key Levels: PDH / PDL / Daily Open", shorttitle="ICT Levels", overlay=true)
// --- Inputs
showPD = input.bool(true, "Mostrar PDH/PDL")
showOpen = input.bool(true, "Mostrar Daily Open")
pdhColor = input.color(color.new(color.green, 0), "Color PDH")
pdlColor = input.color(color.new(color.red, 0), "Color PDL")
openColor = input.color(color.new(color.orange, 0), "Color Daily Open")
lineWidth = input.int(1, "Ancho líneas", minval=1, maxval=4)
// --- Previous day high / low (using daily security)
pdh = request.security(syminfo.tickerid, "D", high )
pdl = request.security(syminfo.tickerid, "D", low )
// --- Daily open (current day's open on Daily timeframe)
dailyOpen = request.security(syminfo.tickerid, "D", open)
// --- Plots
plot(showPD and not na(pdh) ? pdh : na, title="PDH", color=pdhColor, linewidth=lineWidth, style=plot.style_line)
plot(showPD and not na(pdl) ? pdl : na, title="PDL", color=pdlColor, linewidth=lineWidth, style=plot.style_line)
plot(showOpen and not na(dailyOpen) ? dailyOpen : na, title="Daily Open", color=openColor, linewidth=lineWidth, style=plot.style_line)
// --- Optional: etiquetas en inicio de día (solo en la primera barra diaria)
isNewDay = ta.change(time("D"))
labelNewDayOpen = input.bool(true, "Mostrar etiqueta en apertura diaria")
if labelNewDayOpen and isNewDay
label.new(bar_index, dailyOpen, text="Open", style=label.style_label_down, color=color.new(openColor,50), textcolor=color.black, yloc=yloc.price)
My script//@version=5
indicator("LTF Multi-Condition BUY Signal (v5 clean)", overlay=true, max_labels_count=100, max_lines_count=100)
// ───────────────── INPUTS ─────────────────
pivot_len = input.int(4, "Pivot sensitivity (structure)", minval=2, maxval=12)
range_len = input.int(20, "Range lookback for breakout", minval=5)
htf_tf = input.timeframe("480", "HTF timeframe (8H+)")
reclaim_window = input.int(5, "Reclaim window (bars)", minval=1)
ema_fast_len = input.int(9, "EMA fast length")
ema_slow_len = input.int(21, "EMA slow length")
rsi_len = input.int(14, "RSI length")
rsi_pivot_len = input.int(4, "RSI pivot sensitivity")
rsi_div_lookback = input.int(30, "RSI divergence max lookback (bars)")
daily_vol_mult = input.float(1.0, "Daily volume vs SMA multiplier", step=0.1)
htf_vol_sma_len = input.int(20, "HTF volume SMA length")
require_reclaim = input.bool(true, "Require HTF reclaim")
use_aggressive_HL = input.bool(false, "Aggressive HL detection")
// ───────────────── BASE INDICATORS ─────────────────
emaFast = ta.ema(close, ema_fast_len)
emaSlow = ta.ema(close, ema_slow_len)
rsiVal = ta.rsi(close, rsi_len)
// ───────────────── DAILY CHECKS (VOLUME & OBV) ─────────────────
// Daily OBV and previous value
daily_obv = request.security(syminfo.tickerid, "D",
ta.cum(ta.change(close) > 0 ? volume : ta.change(close) < 0 ? -volume : 0))
daily_obv_prev = request.security(syminfo.tickerid, "D",
ta.cum(ta.change(close) > 0 ? volume : ta.change(close) < 0 ? -volume : 0) )
// Daily volume & SMA
daily_vol = request.security(syminfo.tickerid, "D", volume)
daily_vol_sma = request.security(syminfo.tickerid, "D", ta.sma(volume, 20))
daily_vol_ok = not na(daily_vol) and not na(daily_vol_sma) and daily_vol > daily_vol_sma * daily_vol_mult
daily_obv_ok = not na(daily_obv) and not na(daily_obv_prev) and daily_obv > daily_obv_prev
// ───────────────── HTF SUPPORT / RECLAIM ─────────────────
htf_high = request.security(syminfo.tickerid, htf_tf, high)
htf_low = request.security(syminfo.tickerid, htf_tf, low)
htf_close = request.security(syminfo.tickerid, htf_tf, close)
htf_volume = request.security(syminfo.tickerid, htf_tf, volume)
htf_vol_sma = request.security(syminfo.tickerid, htf_tf, ta.sma(volume, htf_vol_sma_len))
htf_bull_reject = not na(htf_high) and not na(htf_low) and not na(htf_close) and (htf_close - htf_low) > (htf_high - htf_close)
htf_vol_confirm = not na(htf_volume) and not na(htf_vol_sma) and htf_volume > htf_vol_sma
htf_support_level = (htf_bull_reject and htf_vol_confirm) ? htf_low : na
// Reclaim: LTF close back above HTF support within N bars
reclaimed_now = not na(htf_support_level) and close > htf_support_level and ta.barssince(close <= htf_support_level) <= reclaim_window
htf_reclaim_ok = require_reclaim ? reclaimed_now : true
// ───────────────── STRUCTURE: BOS & HL (CoC) ─────────────────
swingHighVal = ta.pivothigh(high, pivot_len, pivot_len)
swingLowVal = ta.pivotlow(low, pivot_len, pivot_len)
swingHighCond = not na(swingHighVal)
swingLowCond = not na(swingLowVal)
lastSwingHigh = ta.valuewhen(swingHighCond, swingHighVal, 0)
prevSwingHigh = ta.valuewhen(swingHighCond, swingHighVal, 1)
lastSwingLow = ta.valuewhen(swingLowCond, swingLowVal, 0)
prevSwingLow = ta.valuewhen(swingLowCond, swingLowVal, 1)
bos_bull = not na(prevSwingHigh) and close > prevSwingHigh
hl_confirm = not na(lastSwingLow) and not na(prevSwingLow) and lastSwingLow > prevSwingLow and ta.barssince(swingLowCond) <= 30
if use_aggressive_HL
hl_confirm := hl_confirm or (low > low and ta.barssince(swingLowCond) <= 12)
// ───────────────── RSI BULLISH DIVERGENCE ─────────────────
rsiLowVal = ta.pivotlow(rsiVal, rsi_pivot_len, rsi_pivot_len)
rsiLowCond = not na(rsiLowVal)
priceAtRsiLowA = ta.valuewhen(rsiLowCond, low , 0)
priceAtRsiLowB = ta.valuewhen(rsiLowCond, low , 1)
rsiLowA = ta.valuewhen(rsiLowCond, rsiVal , 0)
rsiLowB = ta.valuewhen(rsiLowCond, rsiVal , 1)
rsi_div_ok = not na(priceAtRsiLowA) and not na(priceAtRsiLowB) and not na(rsiLowA) and not na(rsiLowB) and
(priceAtRsiLowA < priceAtRsiLowB) and (rsiLowA > rsiLowB) and ta.barssince(rsiLowCond) <= rsi_div_lookback
// ───────────────── RANGE BREAKOUT ─────────────────
range_high = ta.highest(high, range_len)
range_breakout = ta.crossover(close, range_high)
// ───────────────── EMA CROSS / TREND ─────────────────
ema_cross_happened = ta.crossover(emaFast, emaSlow)
ema_trend_ok = emaFast > emaSlow
// ───────────────── FINAL BUY CONDITION ─────────────────
all_price_checks = bos_bull and hl_confirm and rsi_div_ok and range_breakout
all_filter_checks = ema_trend_ok and ema_cross_happened and daily_vol_ok and daily_obv_ok and htf_reclaim_ok
buy_condition = all_price_checks and all_filter_checks
// ───────────────── PLOTS & ALERT ─────────────────
plotshape(
buy_condition,
title = "BUY Signal",
location = location.belowbar,
style = shape.labelup,
text = "BUY",
textcolor = color.white,
color = color.green,
size = size.small)
plot(htf_support_level, title="HTF Support", color=color.new(color.green, 0), linewidth=2, style=plot.style_linebr)
alertcondition(buy_condition, title="LTF BUY Signal", message="LTF BUY Signal on {{ticker}} ({{interval}}) — all conditions met")
ICT Open Range Gap & 1st FVG + MNO/PDHL Title:
ICT Open Range Gap & 1st FVG + MNO/PDHL (Source Rays)
Description:
This is an enhanced version of the "ICT Open Range Gap & 1st FVG" indicator (originally by fadizeidan), modified to include essential daily institutional reference levels with precise "Source Ray" visualization.
This tool is designed to declutter your chart by keeping only the active day's levels visible while providing historical precision for Previous Day High/Low and Midnight Open.
Key Features:
1. MNO (New York Midnight Open)
Automatically captures the exact opening price at 00:00 New York Time.
Draws a level extending to the current price action to act as a bias filter (Bullish above/Bearish below).
Note: This strictly uses 00:00 ET, distinct from the Settlement/Electronic open.
2. PDH & PDL with Source Rays
Previous Day High (PDH) and Previous Day Low (PDL) are not just arbitrary horizontal lines.
Source Ray Logic: The lines originate from the exact timestamp/candle where the High or Low occurred yesterday. This helps you visualize the "origin" of the liquidity pool.
The lines automatically extend to the right of the current price.
3. ICT Open Range Gap & 1st FVG (Original Logic)
Retains the core functionality of measuring the gap between the 09:30 NY Open and the prior Close.
Identifies the first 1-minute Fair Value Gap (FVG) after the opening bell.
Includes quadrant projections (25%, 50% CE, 75%) for the opening range.
Settings:
Daily Levels (Source Rays): A new settings group allows you to toggle MNO, PDH, and PDL on/off individually.
Customization: Fully customizable colors, line styles, and labels for all levels.
Active Only: To maintain a clean chart, daily levels (MNO/PDH/PDL) are persistent for the current session only and do not clutter historical data.
Credits:
Original script logic by fadizeidan.
Modifications for MNO & PDHL Source Rays by Assistant.
ORB indicatorthis indicator marks out the first 15 min high and low on the candle that opens in each session, very easy to read and minimalist
Regime [CHE] Regime — Minimal HTF MACD histogram regime marker with a simple rising versus falling state.
Summary
Regime is a lightweight overlay that turns a higher-timeframe-style MACD histogram condition into a simple regime marker on your chart. It queries an imported core module to determine whether the histogram is rising and then paints a consistent marker color based on that boolean state. The output is intentionally minimal: no lines, no panels, no extra smoothing visuals, just a repeated marker that reflects the current regime. This makes it useful as a quick context filter for other signals rather than a standalone system.
Motivation: Why this design?
A common problem in discretionary and systematic workflows is clutter and over-interpretation. Many regime tools draw multiple plots, which can distract from price structure. This script reduces the regime idea to one stable question: is the MACD histogram rising under a given preset and smoothing length. The core logic is delegated to a shared module to keep the indicator thin and consistent across scripts that rely on the same definition.
What’s different vs. standard approaches?
Reference baseline: A standard MACD histogram plotted in a separate pane with manual interpretation.
Architecture differences:
Uses a shared library call for the regime decision, rather than re-implementing MACD logic locally.
Uses a single boolean output to drive marker color, rather than plotting histogram bars.
Uses fixed marker placement at the bottom of the chart for consistent visibility.
Practical effect:
You get a persistent “context layer” on price without dedicating a separate pane or reading histogram amplitude. The chart shows state, not magnitude.
How it works (technical)
1. The script imports `chervolino/CoreMACDHTF/2` and calls `core.is_hist_rising()` on each bar.
2. Inputs provide the source series, a preset string for MACD-style parameters, and a smoothing length used by the library function.
3. The library returns a boolean `rising` that represents whether the histogram is rising according to the library’s internal definition.
4. The script maps that boolean to a color: yellow when rising, blue otherwise.
5. A circle marker is plotted on every bar at the bottom of the chart, colored by the current regime state. Only the most recent five hundred bars are displayed to limit visual load.
Notes:
The exact internal calculation details of `core.is_hist_rising()` are not shown in this code. Any higher timeframe mechanics, security usage, or confirmation behavior are determined by the imported library. (Unknown)
Parameter Guide
Source — Selects the price series used by the library call — Default: close — Tips: Use close for consistency; alternate sources may shift regime changes.
Preset — Chooses parameter preset for the library’s MACD-style configuration — Default: 3,10,16 — Trade-offs: Faster presets tend to flip more often; slower presets tend to react later.
Smoothing Length — Controls smoothing used inside the library regime decision — Default: 21 — Bounds: minimum one — Trade-offs: Higher values typically reduce noise but can delay transitions. (Library behavior: Unknown)
Reading & Interpretation
Yellow markers indicate the library considers the histogram to be rising at that bar.
Blue markers indicate the library considers it not rising, which may include falling or flat conditions depending on the library definition. (Unknown)
Because markers repeat on every bar, focus on transitions from one color to the other as regime changes.
This tool is best read as context: it does not express strength, only direction of change as defined by the library.
Practical Workflows & Combinations
Trend following:
Use yellow as a condition to allow long-side entries and blue as a condition to allow short-side entries, then trigger entries with your primary setup such as structure breaks or pullback patterns. (Optional)
Exits and stops:
Consider tightening management after a color transition against your position direction, but do not treat a single flip as an exit signal without price-based confirmation. (Optional)
Multi-asset and multi-timeframe:
Keep `Source` consistent across assets.
Use the slower preset when instruments are noisy, and the faster preset when you need earlier context shifts. The best transferability depends on the imported library’s behavior. (Unknown)
Behavior, Constraints & Performance
Repaint and confirmation:
This script itself uses no forward-looking indexing and no explicit closed-bar gating. It evaluates on every bar update.
Any repaint or confirmation behavior may come from the imported library. If the library uses higher timeframe data, intrabar updates can change the state until the higher timeframe bar closes. (Unknown)
security and HTF:
Not visible here. The library name suggests HTF behavior, but the implementation is not shown. Treat this as potentially higher-timeframe-driven unless you confirm the library source. (Unknown)
Resources:
No loops, no arrays, no heavy objects. The plotting is one marker series with a five hundred bar display window.
Known limits:
This indicator does not convey histogram magnitude, divergence, or volatility context.
A binary regime can flip in choppy phases depending on preset and smoothing.
Sensible Defaults & Quick Tuning
Starting point:
Source: close
Preset: 3,10,16
Smoothing Length: 21
Tuning recipes:
Too many flips: choose the slower preset and increase smoothing length.
Too sluggish: choose the faster preset and reduce smoothing length.
Regime changes feel misaligned with your entries: keep the preset, switch the source back to close, and tune smoothing length in small steps.
What this indicator is—and isn’t
This is a minimal regime visualization and a context filter. It is not a complete trading system, not a risk model, and not a prediction engine. Use it together with price structure, execution rules, and position management. The regime definition depends on the imported library, so validate it against your market and timeframe before relying on it.
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
MACD HTF Hardcoded






















