FVGLibrary "FVG"
The library is searching the FVG
find_bull_fvg(provided_fvgs, monthly_low_1, monthly_high_3, monthly_time_3, monthly_bar_closed, monthly_high_1)
Parameters:
provided_fvgs (array type from maksym_hayovets/POITypes/1)
monthly_low_1 (float)
monthly_high_3 (float)
monthly_time_3 (int)
monthly_bar_closed (bool)
monthly_high_1 (float)
find_bear_fvg(provided_fvgs, monthly_low_3, monthly_high_1, monthly_time_3, monthly_bar_closed, monthly_low_1)
Parameters:
provided_fvgs (array type from maksym_hayovets/POITypes/1)
monthly_low_3 (float)
monthly_high_1 (float)
monthly_time_3 (int)
monthly_bar_closed (bool)
monthly_low_1 (float)
Göstergeler ve stratejiler
POITypesLibrary "POITypes"
TODO: add library description here
ZonePOI
Fields:
right (series int)
top (series float)
left (series int)
bottom (series float)
is_tested (series bool)
start_time_test_4H (series int)
end_time_test_4H (series int)
is_covered (series bool)
is_drawn (series bool)
Equal Highs and Lows (Line Between Matches Only)marks out equal highs and lows with a solid red line and solid green line. Only marks out till the next candle
Up/Down Volume with Table (High Contrast)Up/Down Volume with Table (High Contrast) — Script Summary & User Guide
Purpose of the Script
This TradingView indicator, Up/Down Volume with Table (High Contrast), visually separates and quantifies up-volume and down-volume for each bar, providing both a color-coded histogram and a dynamic table summarizing the last five bars. The indicator helps traders quickly assess buying and selling pressure, recent volume shifts, and their relationship to price changes, all in a highly readable format.
Key Features
Up/Down Volume Columns:
Green columns represent volume on bars where price closed higher than the previous bar (up volume).
Red columns represent volume on bars where price closed lower than the previous bar (down volume).
Delta Line:
Plots the net difference between up and down volume for each bar.
Green when up-volume exceeds down-volume; red when down-volume dominates.
Interactive Table:
Displays the last five bars, showing up-volume, down-volume, delta, and close price.
Color-coding for quick interpretation.
Table position, decimal places, and timeframe are all user-configurable.
Custom Timeframe Support:
Calculate all values on the chart’s timeframe or a custom timeframe of your choice (e.g., daily, hourly).
High-Contrast Design:
Table and plot colors are chosen for maximum clarity and accessibility.
User Inputs & Configuration
Use custom timeframe:
Toggle between the chart’s timeframe and a user-specified timeframe.
Custom timeframe:
Set the timeframe for calculations if custom mode is enabled (e.g., "D" for daily, "60" for 60 minutes).
Decimal Places:
Choose how many decimal places to display in the table.
Table Location:
Select where the table appears on your chart (e.g., Bottom Right, Top Left, etc.).
How to Use
Add the Script to Your Chart:
Copy and paste the code into a new Pine Script indicator on TradingView.
Add the indicator to your chart.
Configure Inputs:
Open the indicator settings.
Adjust the timeframe, decimal places, and table location as desired.
Read the Table:
The table appears on your chart (location is user-selectable) and displays the following for the last five bars:
Bar: "Now" for the current bar, then "Bar -1", "Bar -2", etc. for previous bars.
Up Vol: Volume on bars where price closed higher than previous bar, shown in black text.
Down Vol: Volume on bars where price closed lower than previous bar, shown in black text.
Delta: Up Vol minus Down Vol, colored green for positive, red for negative, black for zero.
Close: Closing price for each bar, colored green if price increased from previous bar, red if decreased, black if unchanged.
Interpret the Histogram and Lines:
Green Columns:
Represent up-volume. Tall columns indicate strong buying volume.
Red Columns:
Represent down-volume. Tall columns indicate strong selling volume.
Delta Line:
Plotted as a line (not a column), colored green for positive values (more up-volume), red for negative (more down-volume).
Large positive or negative spikes may indicate strong buying or selling pressure, respectively.
How to Interpret the Table
Column Meaning Color Coding
Bar "Now" (current bar), "Bar -1" (previous bar), etc. Black text
Up Vol Volume for bars with higher closes than previous bar Black text
Down Vol Volume for bars with lower closes than previous bar Black text
Delta Up Vol - Down Vol. Green if positive, red if negative, black if zero Green/Red/Black
Close Closing price for the bar. Green if price increased, red if decreased, black if unchanged Green/Red/Black
Green Delta: Indicates net buying pressure for that bar.
Red Delta: Indicates net selling pressure for that bar.
Close Price Color:
Green: Price increased from previous bar.
Red: Price decreased.
Black: No change.
Practical Trading Insights
Consistently Green Delta (Histogram & Table):
Sustained buying pressure; may indicate bullish sentiment or accumulation.
Consistently Red Delta:
Sustained selling pressure; may indicate bearish sentiment or distribution.
Large Up/Down Volume Spikes:
Big green or red columns can signal strong market activity or potential reversals if they occur at trend extremes.
Delta Flipping Colors:
Rapid alternation between green and red deltas may indicate a choppy or indecisive market.
Close Price Color in Table:
Use as a quick confirmation of whether volume surges are pushing price in the expected direction.
Troubleshooting & Notes
No Volume Data Error:
If your symbol doesn’t provide volume data (e.g., some indices or synthetic assets), the script will display an error.
Custom Timeframe:
If using a custom timeframe, ensure your chart supports it and that there is enough data for meaningful calculations.
High-Contrast Table:
Designed for clarity and accessibility, but you can adjust colors in the code if needed for your personal preferences.
Summary Table Legend
Bar Up Vol Down Vol Delta Close
Now ... ... ... ...
Bar-1 ... ... ... ...
... ... ... ... ...
Colors reflect the meaning as described above.
In Summary
This indicator visually and numerically breaks down buying and selling volume, helping you spot shifts in market sentiment, volume surges, and price/volume divergences at a glance.
Use the table for precise recent data, the histogram for overall flow, and the color cues for instant market context.
COT_OscilatorThe COT Ocsilator Indicator is a quantitative analysis tool that uses the positioning of so-called Commercials from the weekly Commitments of Traders (COT) report published by the CFTC . It is designed to detect extreme hedging behavior by institutional participants and translates it into a normalized scale from 0 to 100. The goal is to provide early indication of potential market reversals or overextensions.
What is the "Commercial Index"?
Commercials are market participants with a direct connection to the underlying asset – such as producers, processors, or large-scale users of commodities. They are often referred to as "Smart Money" due to their fundamental market insight and hedging purpose.
The Commercial Index measures where the current net position of Commercials (Long - Short) stands within a user-defined historical lookback window:
Index = 100 : the most bullish net position in the selected period.
Index = 0 : the most bearish net position.
How does the indicator work?
Data Source: The script uses the latest TradingView/LibraryCOT/4, which provides structured access to official COT data.
Calculation:
Weekly long and short positions of Commercials are requested based on the selected root symbol (e.g., "HG" for Copper).
Net position is calculated as: Net = Long - Short .
This value is normalized within the selected historical range (e.g., 150 weeks) between the highest and lowest net positions.
Result : A smooth oscillator ranging from 0 to 100 is plotted.
How to use the indicator?
Select your target future market (e.g., "GC" for Gold, "CL" for Crude Oil, "HG" for Copper).
Optionally adjust the three time windows to observe short-, mid-, and long-term sentiment (e.g., 125, 250, 500 weeks).
Watch for extreme readings:
Above 80–100: Commercials are heavily net long.
Below 20–0: Commercials are heavily net short.
These extremes are especially relevant when combined with price action, seasonality, or technical signals.
What makes this script unique?
Objective sentiment evaluation based on real institutional positioning.
Three timeframes shown in parallel for multi-horizon analysis.
No smoothing or distortion – raw positioning is visualized cleanly.
Useful in futures markets, where hedging behavior is a major driver.
Tips for Use:
Best viewed on weekly daily or charts (e.g., COMEX:HG1!, NYMEX:CL1!, CBOT:ZW1!).
Combine with technical setups or external sentiment tools for confirmation.
Can be used as a core building block in COT-based strategies or signal generation systems.
This indicator helps you track the footprints of Smart Money – and anticipate where the market might turn.
VIX‑Based σ‑BandsThis Pine Script v5 indicator builds a volatility‑based envelope around yesterday’s close using CBOE’s volatility indices. It dynamically pulls VIX, VXN, VXD or RVX—depending on whether you’re charting ES, NQ, YM or RTY—and converts annualized volatility into dollar‑move bands at ±¼ σ, ±½ σ, ±1 σ, and ±2 σ. Optional “mid‑lines” fill in the gaps between each band for even finer precision.
Chaikin Money Flow//@version=5
indicator("WTI Short Breakout Alert", overlay=true)
// === Input Parameters ===
supportLevel = input.float(65.50, title="Breakout Support Level", step=0.01) rsiLength = input.int(14, title="RSI Length") emaLength = input.int(21, title="EMA Length")
// === Calculations ===
ema = ta.ema(close, emaLength)
rsi = ta.rsi(close, rsiLength)
// === Conditions ===
belowEMA = close < ema
rsiBearish = rsi < 50
breakSupport = close < supportLevel
// === Final Alert Condition ===
shortSetup = belowEMA and rsiBearish and breakSupport
// === Plotting ===
plot(supportLevel, title="Support Level", color=color.red, linewidth=1, style=plot.style_line) plotshape(shortSetup, title="Short Entry", location=location.belowbar, color=color.red, style=shape.labeldown, text="SHORT")
// === Alert ===
alertcondition(shortSetup, title="Short Breakout Alert", message="WTI SHORT Setup: Price < EMA21, RSI < 50, and breaking below support!")
SPY Hybrid ORE Strategy v3This Pine Script strategy implements a SPY Hybrid Opening Range Expansion (ORE) Strategy that trades breakouts from the daily opening range during specific market hours (9:30-11:30 AM). The strategy identifies "sucker moves" - situations where the opening range is unusually large compared to historical volatility (ATR) - and then trades breakouts in the opposite direction of the initial move.
For long positions, it enters when price breaks above the previous bar's high after a large opening range in bullish market conditions (price above 50-day SMA), using the opening low as a stop loss and targeting a profit equal to half the opening range. For short positions, it enters on breaks below the previous bar's low during bearish conditions (price significantly below 50-day SMA with bearish momentum), using more aggressive stops and partial profit-taking. The strategy incorporates multiple filters including volatility (ATR), volume, RSI momentum, and includes risk management through position sizing based on account equity and stop distance, along with time-based exits and cooldown periods between trades.
Beta calculatorCalculates the market beta for the stock that is on your screen. You may change the parameters by changing the symbol you are using as benchmark to calculate market beta in the settings. This will affect the market beta you get. VTI is used since it has a theoretical market beta of 1.
Stock-Specific SMA200 Volatility NormalizedIt is used for swing treding it is shows for 0 to 100 range for every stock
moving_averages_library_public🔍 Overview
A comprehensive open‑source Pine Script library offering a wide variety of moving average functions, including dynamic int-series support for variable-length MA calculations
Reddit
✨ Features
Dozens of moving averages supported:
SMA, EMA, WMA, TMA
Advanced types: ALMA, VRAMA, EFRAMA, EHMA, THMA, etc.
Each function supports both fixed-length and series-length input
Easily integrated into other indicators and strategies via dynamic length parameters
⚙️ How to Use
Import the library:
import T69/Moving_Averages/1 as ma
Call your desired MA function using source and length:
ma.hma(src, len)
ma.frama(src, len)
For dynamic integration, use an input type and pass to the matching function.
🛠 Example Code
src = input.source(close, "Source")
len = input.int(14, "Length")
type = input.string("HMA", "MA Type", options= )
ma_value = switch type
"EMA" => ma.ema(src,len)
"HMA" => ma.hma(src,len)
"FRAMA" => ma.frama(src,len)
=> na
plot(ma_value, color=color.blue)
⚠️ Limitations
Internal calculation precision may differ slightly from TradingView’s built‑in MA functions
Users must manually map input strings to MA functions
Does not include built‑in GUI dropdowns for selecting type
💡 Tips
Use adaptive MAs like VIDYA, JMA, or KAMA for volatility-aware smoothing
Combine with oscillators or ATR bands to define trend strength or entry zones
Utilize series‑based MA inputs for backtesting variability or optimization
📘 Credits
Author: MightyZinger
Published: June 2022 (Public Library), regularly updated
License: Open‑source. Reuse subject to TradingView House Rules
//====================TECHNICAL STUFFS====================
Library "moving_averages_library_public"
TODO: add library description here
new_def_teyoparams()
get_all_ma_enums()
get_ma_out(p_type, src, len, update_instances)
TODO: add function description here
Parameters:
p_type (series ma_type)
src (float) : TODO: Source of the candle for computation
len (simple int) : TODO: Length of lookback of the candle for computation
update_instances (teyo_parameters)
Returns: TODO: add what function returns
==============================================================================
Moving Average Selector
==============================================================================
teyo_parameters
Fields:
p1 (series float)
p2 (series float)
p3 (series float)
p4 (series float)
p5 (series float)
p6 (series float)
p7 (series float)
p8 (series float)
p9 (series float)
p10 (series float)
p11 (series float)
p12 (series float)
p13 (series float)
p14 (series float)
p15 (series float)
p16 (series float)
p17 (series float)
p18 (series float)
p19 (series float)
p20 (series float)
400 EMA 1min and 5min Collision Alert//@version=5
indicator("400 EMA 1min and 5min Collision Alert", overlay=true)
// === Inputs ===
len = input.int(400, title="EMA Length")
threshold = input.float(0.1, title="Collision Threshold", tooltip="Max difference between EMAs to trigger alert")
// === EMAs ===
// 400 EMA on 1-minute timeframe
ema_1min = request.security(syminfo.tickerid, "1", ta.ema(close, len))
// 400 EMA on 5-minute timeframe
ema_5min = request.security(syminfo.tickerid, "5", ta.ema(close, len))
// === Plot EMAs ===
plot(ema_1min, title="400 EMA (1min)", color=color.orange, linewidth=2)
plot(ema_5min, title="400 EMA (5min)", color=color.blue, linewidth=2)
// === Collision Detection ===
collide = math.abs(ema_1min - ema_5min) <= threshold
plotshape(collide, title="Collision!", location=location.abovebar, color=color.red, style=shape.triangleup, size=size.small)
// === Alerts ===
alertcondition(collide, title="EMAs Collide", message="400 EMA (1min) and 400 EMA (5min) have collided.")
Days Since ±1% Move on CloseInterpretation & Use‑Case
The “Days Since ±1% Move” indicator simply tells you how many trading days have passed since the last daily close that moved at least 1% in either direction. Here’s how to put it to work:
Complacency Gauge
A long stretch without a ≥1% move often signals that realized volatility has collapsed and market participants may be under‑positioned for a sudden swing.
Positioning Insight
When institutional hedges and systematic strategies see low recent volatility, they tend to scale back protection (fewer options hedges, tighter risk limits), which can amplify the impact of any eventual volatility pickup.
Mean‑Reversion Signal
After an extended streak (e.g. 20–30 days), a fresh ≥1% move is more likely—and often more violent—because pent‑up positioning flows rush to adjust.
Trend Confirmation
Conversely, a reset in the count (i.e., a new ≥1% move) that coincides with strong volume and follow‑through suggests genuine directional conviction rather than just a volatility “blip.”
10/20 EMA + 50/200 SMA10/20 EMA + 50/200 SMA all in one indicator to help you analyze your trades in a more efficient way.
Quarterly Earnings with NPMQuarterly Earnings with NPM can be used to compare earnings for Indian stocks QOQ or YOY, also shows the revenue or Mcap of any company.
Líneas VerticalesVertical lines in different time frames to select and analyze candles according to time frames in a lower TF.
The Kyber Cell's – TTM Wave CThe Kyber Cell’s Wave C – TTM Squeeze Macro Bias & Structural Filter
⸻
1. Introduction
Wave C is the strategic compass in the TTM Squeeze Wave system — the final layer that helps you align with the larger trend or macro context. While Wave A delivers momentum bursts and Wave B confirms active trend direction, Wave C filters trades through a broader lens, helping you avoid taking strong intraday setups that go against the dominant structure.
Wave C is designed to act as your macro bias validator — filtering out trades that contradict higher-timeframe flows or major moving average slopes. When all three waves line up, you’re no longer just reacting to signals — you’re trading with intention and structure. When in doubt, zoom out and that is what Wave C gives you.
⸻
2. Core Concept and Calculation
Wave C is built to measure high-level trend bias, either on the current chart timeframe or derived from a higher timeframe (HTF). Its logic is based on one or more of the following structural tools:
• Long-term EMA slope (e.g., 55, 89, or 200 EMA)
• HTF VWAP positioning (price above or below)
• Long-period HMA slope (e.g., HMA 144 or HMA 233)
• Directional bias from HTF TTM Squeeze or MTF trend engine
Unlike Wave A and B, which may fluctuate during normal price swings, Wave C changes more slowly. That’s the point — it gives a “big picture” backdrop against which all lower-level signals should be evaluated. It reduces false positives and helps you wait for trades in the direction of the broader trend.
⸻
3. Visual Output and Color Logic
Wave C uses a simple and deliberate color scheme to communicate macro alignment:
• Green: Bullish macro structure
• Red: Bearish macro structure
• Gray: Neutral, indecisive, or flat macro trend
This muted but firm logic encourages patient, structured trading. The goal isn’t to trigger trades directly from Wave C, but to filter out trades that contradict market posture.
• When Wave C is Green, you ideally want Wave B to be blue and Wave A to turn cyan before going long.
• When Wave C is Red, you look for Wave B to be red and Wave A to turn bright red before shorting.
• If Wave C is Gray, it may signal choppy, indecisive structure — use caution or reduce trade size.
⸻
4. Ideal Use Case
Wave C functions as your global bias filter:
1. Set your directional bias for the session or week.
2. Only take trades that agree with Wave C direction.
3. When all waves align, trade with size and confidence.
4. When Wave C disagrees, wait or downshift your trade plan.
This makes Wave C especially valuable for swing traders, position traders, or intraday traders who want to anchor their entries within a broader trend.
⸻
5. Configuration and Customization
Wave C is built with advanced users in mind, and its configuration allows multiple structural methods:
• EMA Slope Method: Set EMA length and threshold angle
• HTF Source Method: Request HTF data for squeeze trend, VWAP, or Wave B analog
• HMA Trend Filter: Longer-term smoothing to detect sustained directional flow
• Color Preferences: Customize green/red/gray scheme as needed
This flexibility allows you to tailor Wave C to your strategy — whether you’re anchoring to a Daily EMA while scalping the 5-minute chart, or aligning swing entries with the Weekly VWAP.
⸻
6. Alerts and Add-ons
Although Wave C isn’t typically used for alerts, it can be incorporated into confluence-based alert stacks. For example:
• Alert only when Wave C = Green, Wave B = Blue, and Wave A = Rising
• Alert on macro flip (e.g., Green → Red) as a possible regime change
• Alert when macro bias agrees with MTF Squeeze Panel bias
These setups are more advanced but help automate disciplined trade selection.
⸻
7. Disclaimer
This indicator is for educational and research purposes only. It is not trading advice. Wave C is most effective when used in conjunction with Wave A, Wave B, and other structural context. All trades should be executed with proper risk management and backtested methodology.
Kyber Cell's – TTM Wave AThe Kyber Cell’s Wave A – TTM Squeeze Momentum Histogram
⸻
1. Introduction
Wave A is the momentum core of the TTM Squeeze system. As the most dynamic and visually responsive of the three “waves,” it captures the ebb and flow of price strength using linear regression techniques. This histogram-based indicator is typically displayed below the chart and serves as an early warning system for potential breakouts, as well as a momentum health monitor during trades.
Built for traders who value precision, timing, and visual clarity, Kyber Cell’s Wave A re-engineers the traditional TTM Wave A with enhanced color logic, momentum sensitivity, and integration-readiness with multi-wave systems. Whether you’re scalping intraday volatility or riding longer-term swings, this tool gives you the pulse of the move — before the price fully commits.
⸻
2. Core Concept and Calculation
Wave A focuses on momentum as deviation from equilibrium, using a linear regression of the smoothed price difference between:
• The current close
• And the average of the Bollinger Band basis and a mid-range average of highs and lows
The result is a histogram that expands and contracts based on how far and how fast price is moving away from its mean. This makes it ideal for identifying when markets are building pressure (compression), releasing energy (expansion), or losing steam (divergence).
⸻
3. Visual Output and Color Logic
The Wave A histogram dynamically changes color based on the direction and acceleration of momentum:
• Bright Cyan: Bullish momentum increasing
• Dark Blue: Bullish momentum weakening
• Bright Red: Bearish momentum increasing
• Dark Red: Bearish momentum weakening
This 4-color system helps traders instantly identify not just the direction of momentum, but the quality of that move:
• Increasing color brightness = momentum is building
• Dimming colors = momentum is fading
This is especially useful in squeeze trades — a rising Wave A during a green dot (squeeze fire) confirms breakout direction. Conversely, a fading Wave A may suggest to delay entry or prepare to exit.
⸻
4. Ideal Use Case
Wave A is most effective when used in conjunction with a TTM Squeeze dot indicator (such as your Squeeze Pro) and optional Wave B/C overlays. The typical workflow:
1. Watch for Compression: Red, orange, or blue squeeze dots from the main chart indicator.
2. Confirm with Wave A: Enter long if Wave A flips cyan and is rising, or short if it flips bright red and is increasing.
3. Monitor the Bars: Fading bars may signal divergence, exhaustion, or false breakouts.
4. Exit Gracefully: When the histogram flips against your position and starts rising in the opposite color, it’s often a signal to consider tightening stops or taking profit.
⸻
5. Configuration and Customization
Wave A is intentionally minimal in external configuration, focusing instead on clean visuals and fast response. However, key parameters typically include:
• Length of the linear regression (commonly set to match the Squeeze window)
• Price smoothing options (if enabled)
• Bar coloring toggle (to adapt for personal theme preferences or integration into multi-wave dashboards)
This keeps Wave A lightweight and compatible with a wide range of strategies, while remaining highly informative in real-time.
⸻
6. Alerts and Add-ons
While Wave A itself is primarily visual, it can be enhanced with optional alert logic:
• Histogram flip from negative to positive (bullish)
• Histogram flip from positive to negative (bearish)
• Momentum peak or divergence alert (custom-coded for advanced users)
Traders often link this with a squeeze-fire signal or Wave B trend alignment to trigger more sophisticated alerts or automation workflows.
⸻
7. Disclaimer
This indicator is for educational and informational purposes only. It is not financial advice. Trading based on this tool involves risk, and all decisions should be made in context of broader technical and fundamental analysis, appropriate risk management, and your own trading strategy.
⸻
9:15 AM Bullish SetupBAsically it will tell if market open price is greater than 1 % of prev close and also above 20 and 200 SMA
🔍 Candle Scanner (75m/D/W/M) + Volume + EMA + Trend//@version=5
indicator("🔍 Candle Scanner (75m/D/W/M) + Volume + EMA + Trend", overlay=true)
is75min = timeframe.period == "75"
// Time Slot Logic for 75-min only
startTime = timestamp("Asia/Kolkata", year, month, dayofmonth, 9, 15)
candle75 = math.floor((time - startTime) / (75 * 60 * 1000)) + 1
candleNo = is75min and candle75 >= 1 and candle75 <= 5 ? candle75 : na
getTimeSlot(n) =>
slot = ""
if n == 1
slot := "09:15–10:30"
else if n == 2
slot := "10:30–11:45"
else if n == 3
slot := "11:45–13:00"
else if n == 4
slot := "13:00–14:15"
else if n == 5
slot := "14:15–15:30"
slot
// EMA Filters
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
aboveEMA20 = close > ema20
aboveEMA50 = close > ema50
// Volume Strength
avgVol = ta.sma(volume, 20)
volStrength = volume > avgVol ? "High Volume" : "Low Volume"
// Candle Body Strength
bodySize = math.abs(close - open)
fullSize = high - low
bodyStrength = fullSize > 0 ? (bodySize / fullSize > 0.6 ? "Strong Body" : "Small Body") : "Small Body"
// Prior Trend
priorTrend = close < close and close < close ? "Downtrend" :
close > close and close > close ? "Uptrend" : "Sideways"
// Patterns
bullishEngulfing = close > open and close < open and close > open and open < close
bearishEngulfing = close < open and close > open and close < open and open > close
hammer = (high - low) > 3 * bodySize and (close - low) / (0.001 + high - low) > 0.6 and (open - low) / (0.001 + high - low) > 0.6
shootingStar = (high - low) > 3 * bodySize and (high - close) / (0.001 + high - low) > 0.6 and (high - open) / (0.001 + high - low) > 0.6
doji = bodySize <= fullSize * 0.1
morningStar = close < open and bodySize < (high - low ) * 0.3 and close > (open + close ) / 2
eveningStar = close > open and bodySize < (high - low ) * 0.3 and close < (open + close ) / 2
// Pattern Selection
pattern = ""
sentiment = ""
colorBox = color.gray
yOffset = 15
if bullishEngulfing
pattern := "Bull Engulfing"
sentiment := "Bullish"
colorBox := color.green
yOffset := -15
else if bearishEngulfing
pattern := "Bear Engulfing"
sentiment := "Bearish"
colorBox := color.red
yOffset := 15
else if hammer
pattern := "Hammer"
sentiment := "Bullish"
colorBox := color.green
yOffset := -15
else if shootingStar
pattern := "Shooting Star"
sentiment := "Bearish"
colorBox := color.red
yOffset := 15
else if doji
pattern := "Doji"
sentiment := "Neutral"
colorBox := color.gray
yOffset := 15
else if morningStar
pattern := "Morning Star"
sentiment := "Bullish"
colorBox := color.green
yOffset := -15
else if eveningStar
pattern := "Evening Star"
sentiment := "Bearish"
colorBox := color.red
yOffset := 15
timeSlot = is75min and not na(candleNo) ? getTimeSlot(candleNo) : ""
info = pattern != "" ? "🕒 " + (is75min ? timeSlot + " | " : "") + pattern + " (" + sentiment + ") | " + volStrength + " | " + bodyStrength + " | Trend: " + priorTrend + " | EMA20: " + (aboveEMA20 ? "Above" : "Below") + " | EMA50: " + (aboveEMA50 ? "Above" : "Below") : ""
// Label Draw
var label lb = na
if info != ""
lb := label.new(bar_index, high + yOffset, text=info, style=label.style_label_down, textcolor=color.white, size=size.small, color=colorBox)
label.delete(lb )
// Smart Alert
validAlert = pattern != "" and (volStrength == "High Volume") and bodyStrength == "Strong Body" and (aboveEMA20 or aboveEMA50)
alertcondition(validAlert, title="📢 Smart Candle Alert", message="Smart Alert: Candle with Volume + EMA + Trend + Pattern Filtered")
EMA Ribbon with TableThis indicator plots multiple EMAs (5, 8, 13, 21, 34, 55, 89, 144, 233, 377) based on Fibonacci levels. Each line has a distinct color, and a clean table displays their real-time values. Great for spotting trend direction, crossovers, and momentum at a glance.