Circuit % Marker w/ Mirrored Arrows📈 Indian Market Circuit Limit Change Tracker
This indicator automatically tracks circuit limit changes (price bands) as applied in NSE/BSE stocks.
🧠 How It Works:
Start from a user-defined initial circuit limit (e.g. 10%)
If the upper or lower limit is hit, the script waits for a user-defined cooling period (e.g. 5 trading days)
After that, it automatically adjusts to the next lower or higher band (e.g. from 10% to 5%)
Shows a visual label with the current circuit % right on the chart — placed above or below candles for better visibility
🔧 Custom Inputs:
Starting Circuit % — choose between standard NSE/BSE values (20%, 10%, 5%, 2%)
Cooling Days — how many days must pass after a circuit hit before it’s allowed to change again
Label Positioning, Color, and Size — fully customizable to suit your chart style
🚫 No Clutter:
Doesn’t draw circuit limit lines
Just clean, small labels at key turning points — as seen in real trading dashboards
🔍 Notes:
NSE and BSE manually assign circuit bands — this script does not fetch live exchange data
Use it as a visual tracker and simulator of how circuit behavior would evolve under fixed rules
Indicatori e strategie
JPMorgan G7 Volatility IndexThe JPMorgan G7 Volatility Index: Scientific Analysis and Professional Applications
Introduction
The JPMorgan G7 Volatility Index (G7VOL) represents a sophisticated metric for monitoring currency market volatility across major developed economies. This indicator functions as an approximation of JPMorgan's proprietary volatility indices, providing traders and investors with a normalized measurement of cross-currency volatility conditions (Clark, 2019).
Theoretical Foundation
Currency volatility is fundamentally defined as "the statistical measure of the dispersion of returns for a given security or market index" (Hull, 2018, p.127). In the context of G7 currencies, this volatility measurement becomes particularly significant due to the economic importance of these nations, which collectively represent more than 50% of global nominal GDP (IMF, 2022).
According to Menkhoff et al. (2012, p.685), "currency volatility serves as a global risk factor that affects expected returns across different asset classes." This finding underscores the importance of monitoring G7 currency volatility as a proxy for global financial conditions.
Methodology
The G7VOL indicator employs a multi-step calculation process:
Individual volatility calculation for seven major currency pairs using standard deviation normalized by price (Lo, 2002)
- Weighted-average combination of these volatilities to form a composite index
- Normalization against historical bands to create a standardized scale
- Visual representation through dynamic coloring that reflects current market conditions
The mathematical foundation follows the volatility calculation methodology proposed by Bollerslev et al. (2018):
Volatility = σ(returns) / price × 100
Where σ represents standard deviation calculated over a specified timeframe, typically 20 periods as recommended by the Bank for International Settlements (BIS, 2020).
Professional Applications
Professional traders and institutional investors employ the G7VOL indicator in several key ways:
1. Risk Management Signaling
According to research by Adrian and Brunnermeier (2016), elevated currency volatility often precedes broader market stress. When the G7VOL breaches its high volatility threshold (typically 1.5 times the 100-period average), portfolio managers frequently reduce risk exposure across asset classes. As noted by Borio (2019, p.17), "currency volatility spikes have historically preceded equity market corrections by 2-7 trading days."
2. Counter-Cyclical Investment Strategy
Low G7 volatility periods (readings below the lower band) tend to coincide with what Shin (2017) describes as "risk-on" environments. Professional investors often use these signals to increase allocations to higher-beta assets and emerging markets. Campbell et al. (2021) found that G7 volatility in the lowest quintile historically preceded emerging market outperformance by an average of 3.7% over subsequent quarters.
3. Regime Identification
The normalized volatility framework enables identification of distinct market regimes:
- Readings above 1.0: Crisis/high volatility regime
- Readings between -0.5 and 0.5: Normal volatility regime
- Readings below -1.0: Unusually calm markets
According to Rey (2015), these regimes have significant implications for global monetary policy transmission mechanisms and cross-border capital flows.
Interpretation and Trading Applications
G7 currency volatility serves as a barometer for global financial conditions due to these currencies' centrality in international trade and reserve status. As noted by Gagnon and Ihrig (2021, p.423), "G7 currency volatility captures both trade-related uncertainty and broader financial market risk appetites."
Professional traders apply this indicator in multiple contexts:
- Leading indicator: Research from the Federal Reserve Board (Powell, 2020) suggests G7 volatility often leads VIX movements by 1-3 days, providing advance warning of broader market volatility.
- Correlation shifts: During periods of elevated G7 volatility, cross-asset correlations typically increase what Brunnermeier and Pedersen (2009) term "correlation breakdown during stress periods." This phenomenon informs portfolio diversification strategies.
- Carry trade timing: Currency carry strategies perform best during low volatility regimes as documented by Lustig et al. (2011). The G7VOL indicator provides objective thresholds for initiating or exiting such positions.
References
Adrian, T. and Brunnermeier, M.K. (2016) 'CoVaR', American Economic Review, 106(7), pp.1705-1741.
Bank for International Settlements (2020) Monitoring Volatility in Foreign Exchange Markets. BIS Quarterly Review, December 2020.
Bollerslev, T., Patton, A.J. and Quaedvlieg, R. (2018) 'Modeling and forecasting (un)reliable realized volatilities', Journal of Econometrics, 204(1), pp.112-130.
Borio, C. (2019) 'Monetary policy in the grip of a pincer movement', BIS Working Papers, No. 706.
Brunnermeier, M.K. and Pedersen, L.H. (2009) 'Market liquidity and funding liquidity', Review of Financial Studies, 22(6), pp.2201-2238.
Campbell, J.Y., Sunderam, A. and Viceira, L.M. (2021) 'Inflation Bets or Deflation Hedges? The Changing Risks of Nominal Bonds', Critical Finance Review, 10(2), pp.303-336.
Clark, J. (2019) 'Currency Volatility and Macro Fundamentals', JPMorgan Global FX Research Quarterly, Fall 2019.
Gagnon, J.E. and Ihrig, J. (2021) 'What drives foreign exchange markets?', International Finance, 24(3), pp.414-428.
Hull, J.C. (2018) Options, Futures, and Other Derivatives. 10th edn. London: Pearson.
International Monetary Fund (2022) World Economic Outlook Database. Washington, DC: IMF.
Lo, A.W. (2002) 'The statistics of Sharpe ratios', Financial Analysts Journal, 58(4), pp.36-52.
Lustig, H., Roussanov, N. and Verdelhan, A. (2011) 'Common risk factors in currency markets', Review of Financial Studies, 24(11), pp.3731-3777.
Menkhoff, L., Sarno, L., Schmeling, M. and Schrimpf, A. (2012) 'Carry trades and global foreign exchange volatility', Journal of Finance, 67(2), pp.681-718.
Powell, J. (2020) Monetary Policy and Price Stability. Speech at Jackson Hole Economic Symposium, August 27, 2020.
Rey, H. (2015) 'Dilemma not trilemma: The global financial cycle and monetary policy independence', NBER Working Paper No. 21162.
Shin, H.S. (2017) 'The bank/capital markets nexus goes global', Bank for International Settlements Speech, January 15, 2017.
ADR & ATR Extension from EMAThis indicator helps identify how extended the current price is from a chosen Exponential Moving Average (EMA) in terms of both Average Daily Range (ADR) and Average True Range (ATR).
It calculates:
ADR Extension = (Price - EMA) / ADR
ATR Extension = (Price - EMA) / ATR
The results are shown in a floating table on the chart.
The ADR line turns red if the price is more than 4 ADRs above the selected EMA
Customization Options:
- Select EMA length
- Choose between close or high as price input
- Set ADR and ATR periods
- Customize the label’s position, color, and transparency
- Use the chart's timeframe or a fixed timeframe
Market Signal Suite (No Funding)A universal indicator for short-term and medium-term trading without taking into account funding.
Chandelier Exit + EMA Filtered SignalsThis script is a powerful upgrade to the original Chandelier Exit by Alex Orekhov (everget), combining trend-following logic with higher-quality trade filtering.
✅ Key Features:
Chandelier Exit logic with ATR-based stop levels
Buy/Sell signals only when trend is confirmed:
Buy: Price must be above EMA 13, 50, and 200
Sell: Price must be below EMA 13, 50, and 200
Candle highlighting: Green for Buy, Red for Sell
Signal labels for visual clarity
Toggle to show/hide EMAs
Built-in alerts for:
Buy signal
Sell signal
Trend direction change
🛠️ Inputs:
ATR Period and Multiplier
Toggle: Use Close Price for High/Low Calculation
Toggle: Show/Hide Labels and State Highlight
Toggle: Show/Hide EMA 13, 50, 200
Toggle: Await confirmed bar for alerts
🔔 Alerts Included:
Chandelier Exit Buy
Chandelier Exit Sell
Direction Change (long to short or vice versa)
💡 How to Use:
Use on trending assets (e.g., Gold, Indices, Crypto).
Combine with support/resistance or session filters for optimal results.
Enable alerts to be notified on trade setups.
📢 Credits:
Based on the original Chandelier Exit script by everget.
Enhancements by AP Capital for filtered signals and better visual feedback.
Resistance Breakout LevelsResistance Breakout Levels
An advanced TradingView indicator that detects significant resistance pivots and marks confirmed breakouts.
Description:
This Pine Script automatically identifies swing-high pivot points as potential resistance levels. It confirms a breakout only after a configurable number of consecutive closes above the pivot, reducing noise and avoiding false signals. Once validated, it draws a horizontal breakout line at the pivot price and adds a label with the breakout value. Traders can choose to display all breakout lines or only the single highest breakout within a specified lookback period. Additionally, a dynamic current price line spans the chart for quick reference.
Features:
• Pivot High Detection for Resistance Levels
• N-Consecutive Close Breakout Confirmation
• Toggle Between All Breakouts or Highest Breakout with Lookback Window
• Full-Width Live Current Price Line
• Customizable Line Colors, Widths, and Extension Direction
• Price Labels Directly on Breakout Lines
User Inputs:
• Pivot Bars (Left/Right): Number of bars used to detect pivot highs
• Consecutive Closes Above: Closes required above pivot to confirm breakout
• Show All Breakouts: Option to plot every confirmed breakout line
• Highest Lookback Bars: Lookback window for retaining only the highest breakout
• Breakout Line Color & Width: Customize breakout line appearance
• Price Line Color & Width: Customize live current price line appearance
Trend Magic + MTF FVG M5This indicator provides information about the market status. It takes into account the FVGs near the current price as well as a trend strategy (CCI). By combining both, it displays a color that indicates the market status. It is an indicator to be used in combination with a strategy.
cl1! Fadida FinanceA custom entry signal indicator designed for intraday trading on CL1! (Crude Oil Futures).
Built specifically for a defined session time, this tool automatically identifies high-probability trade opportunities using proprietary logic. The script includes visual entry points, dynamic TP/SL levels, and alert capabilities.
Note: The core trading logic is confidential and optimized for a specific trading methodology.
Super YZH Modelsma200 and sma20 especially works 30m 1h. candle filter, the wick must be more than %50 of total candle. sma200 and sma20 must ne in trend. the wick must be on sma20 than we need body closure from this canlde
Linda MACD Divergence w/ Lines + Cam FilterThis is an improvement on the first. Pay around with the Diff setting and do some backtesting. you could try traditional macd settings but the Linda's divergence is the secret to this set up.
Chattes-SwingCount Chattes-SwingCount
// This indicator detects swings using a custom ZigZag algorithm and calculates:
// - Average pip movement per swing
// - Standard deviation of pip movement
// - Average number of candles per swing
// - Standard deviation of candle count
//
// The stats are displayed in a compact box at the top-right corner of the chart.
//
// An alert is triggered when a swing's pip size exceeds 1.5× the standard deviation,
// helping identify unusual volatility or significant market moves.
//
// Inputs allow customization of ZigZag detection parameters and swing sample size.
Kippi-VWAPVWAP with Premarket data, when available.
The settings are like the classic VWAP but you can toggle if you want or don't want the premarket data to be included.
I really hope this description is now long enough. Netanya Oleh
ROC Spike Alert by Jaani//@version=5
indicator("ROC Spike Alert by Jaani", overlay=true)
// === Inputs ===
rocLength = input.int(9, title="ROC Length")
spikeThreshold = input.float(2.0, title="Spike Threshold (%)")
// === ROC Calculation ===
roc = 100 * (close - close ) / close
// === Spike Conditions ===
bullishSpike = roc > spikeThreshold
bearishSpike = roc < -spikeThreshold
// === Plot ROC on Separate Scale
plot(roc, title="ROC", color=color.blue, linewidth=1, display=display.none)
// === Signal Plotting on Chart ===
plotshape(bullishSpike, title="Bullish Spike", location=location.belowbar,
color=color.green, style=shape.triangleup, size=size.small, text="BUY")
plotshape(bearishSpike, title="Bearish Spike", location=location.abovebar,
color=color.red, style=shape.triangledown, size=size.small, text="SELL")
// === Alerts ===
alertcondition(bullishSpike, title="ROC Bullish Spike", message="ROC UP Spike Detected - BUY Signal")
alertcondition(bearishSpike, title="ROC Bearish Spike", message="ROC DOWN Spike Detected - SELL Signal")
My script//@version=6
strategy("Ultimate Combined Buy/Sell Strategy - 4$ Profit", overlay=true)
// تنظیمات ورودی
maFastLength = input.int(5, title="Fast MA Length", minval=1)
maSlowLength = input.int(13, title="Slow MA Length", minval=1)
rsiLength = input.int(14, title="RSI Length", minval=1)
bbLength = input.int(20, title="Bollinger Length", minval=1)
bbMult = input.float(2.0, title="Bollinger Multiplier", minval=0.1, step=0.1)
stochK = input.int(14, title="Stochastic K", minval=1)
stochD = input.int(3, title="Stochastic D", minval=1)
stochSmooth = input.int(3, title="Stochastic Smooth", minval=1)
atrThreshold = input.float(0.10, title="ATR Threshold (Pips)", minval=0.01)
volumeLookback = input.int(20, title="Volume Lookback", minval=1)
profitTargetPips = input.float(40, title="Profit Target (Pips)", minval=1)
stopLossPips = input.float(20, title="Stop Loss (Pips)", minval=1)
// محاسبه اندیکاتورها
maFast = ta.sma(close, maFastLength)
maSlow = ta.sma(close, maSlowLength)
rsi = ta.rsi(close, rsiLength)
= ta.macd(close, 5, 13, 1)
= ta.bb(close, bbLength, bbMult)
= ta.stoch(close, high, low, stochK, stochD, stochSmooth)
atr = ta.atr(14)
avgVolume = ta.sma(volume, volumeLookback)
// سیستم امتیازدهی
buyScore = 0.0
sellScore = 0.0
// امتیاز MA
if maFast > maSlow
buyScore := buyScore + 1.5
if maFast < maSlow
sellScore := sellScore + 1.5
// امتیاز RSI
if rsi < 70
buyScore := buyScore + 1.0
if rsi > 30
sellScore := sellScore + 1.0
if rsi < 30
buyScore := buyScore + 1.5 // اشباع فروش
if rsi > 70
sellScore := sellScore + 1.5 // اشباع خرید
// امتیاز MACD
if macdLine > signalLine
buyScore := buyScore + 1.0
if macdLine < signalLine
sellScore := sellScore + 1.0
// امتیاز Bollinger Bands
if close > bbUpper
buyScore := buyScore + 1.0
if close < bbLower
sellScore := sellScore + 1.0
// امتیاز Stochastic
if stochKVal > stochDVal and stochKVal < 80
buyScore := buyScore + 1.0
if stochKVal < stochDVal and stochKVal > 20
sellScore := sellScore + 1.0
// امتیاز ATR
if atr > atrThreshold
buyScore := buyScore + 1.0
sellScore := sellScore + 1.0
// امتیاز Volume
if volume > avgVolume
buyScore := buyScore + 1.0
sellScore := sellScore + 1.0
// تصمیمگیری
buyCondition = buyScore >= 4.5 and buyScore > sellScore
sellCondition = sellScore >= 4.5 and sellScore > buyScore
// ورود به ترید
if buyCondition
strategy.entry("Buy", strategy.long)
if sellCondition
strategy.entry("Sell", strategy.short)
// خروج با هدف سود و حد ضرر
strategy.exit("Exit Buy", "Buy", profit=profitTargetPips * 10, loss=stopLossPips * 10) // هر پیپ = 0.1 دلار با 0.1 لات
strategy.exit("Exit Sell", "Sell", profit=profitTargetPips * 10, loss=stopLossPips * 10)
// رسم سیگنالها (برای نمایش بصری)
plotshape(buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
// رسم MA
plot(maFast, "Fast MA", color=color.green, linewidth=1)
plot(maSlow, "Slow MA", color=color.red, linewidth=1)
First 15-Min Candle High/Low### 📘 Description of the Script
This Pine Script indicator draws **horizontal lines** at the **high and low of the first 15-minute candle after the market opens at 9:30 AM (New York time)**. It is designed for use on **intraday charts** (e.g., 1m, 5m) for U.S. stock markets.
---
### 🔍 What the Script Does
* **Fetches 15-minute candle data** using `request.security()` from the `"15"` timeframe.
* **Detects the first 15-minute candle starting at 9:30 AM** (i.e., the 9:30–9:45 candle).
* **Saves the high and low** of that first 15-minute candle.
* **Plots horizontal lines** at those high/low levels for the rest of the trading day.
* **Resets at the start of each new day**, so the levels are updated fresh each morning.
---
### 🕒 When It Updates
* At exactly 9:45 AM (when the first 15-minute candle closes), it captures the high/low.
* Lines remain plotted for the rest of the day until the script resets on a new day.
---
### 🧠 Why This Is Useful
Traders often watch the **initial 15-minute range** as a key zone for:
* Breakouts or breakdowns
* Trend direction confirmation
* Entry or exit signals
This script helps visualize that range clearly and automatically.
---
Let me know if you want to:
* Extend the line beyond today
* Add alerts for breakouts
* Support different market open times (e.g., futures or forex markets)
Multi BB (3/4/5 SD) - Separate AlertsGives alert when Price touches Bollinger Band 3 or 4 or 5 on either higher or lower sides.
Average ATR (%) — No Spikes//@version=5
indicator("Average ATR (%) — No Spikes", overlay=true)
///////////////////////////
// Settings
atrLen = input.int(14, title="ATR Length")
barsBack = input.int(150, title="Bars to Average")
priceRef = input.string("close", title="Reference Price", options= )
level1 = input.float(1.0, title="Moderate Volatility Threshold (%)")
level2 = input.float(1.5, title="High Volatility Threshold (%)")
showLabel = input.bool(true, title="Show Value on Chart")
///////////////////////////
// ATR percentage calculation
refPrice = priceRef == "close" ? close : priceRef == "hl2" ? hl2 : open
atr = ta.atr(atrLen)
atrPct = atr / refPrice * 100
// Average ATR % over N bars
var float sum = 0.0
var int count = 0
sum := 0.0
count := 0
for i = 0 to barsBack - 1
sum += nz(atrPct )
count += 1
avgAtrPct = count > 0 ? sum / count : na
///////////////////////////
// Line color based on thresholds
lineColor = avgAtrPct > level2 ? color.red : avgAtrPct > level1 ? color.orange : color.green
plot(avgAtrPct, title="Average ATR (%)", color=lineColor, linewidth=2)
///////////////////////////
// Right-side label
var label infoLabel = na
if showLabel
txt = "Average ATR: " + str.tostring(avgAtrPct, "#.##") + " %"
if na(infoLabel)
infoLabel := label.new(bar_index, close, txt, style=label.style_label_right, size=size.normal, color=color.blue, textcolor=color.white)
else
label.set_xy(infoLabel, bar_index, close)
label.set_text(infoLabel, txt)
else
if not na(infoLabel)
label.delete(infoLabel)
infoLabel := na
ATR and Stochastics by XeodiacThis script combines two popular indicators, the Average True Range (ATR) and the Stochastic Oscillator, into a single chart for enhanced trading insights. Here’s a breakdown of how it works and what it does:
What It Does:
Average True Range (ATR):
Measures market volatility by calculating the average range of price movement over a specified period.
The ATR is plotted in blue on its natural scale, helping you assess how volatile the market is.
Stochastic Oscillator:
A momentum indicator that compares a security's closing price to its price range over a specific period.
It calculates two lines:
%K Line (Green): Tracks the raw Stochastic value.
%D Line (Red): A smoothed moving average of the %K line.
These values are plotted on a percentage scale (0-100) to indicate overbought or oversold conditions.
Inputs:
ATR Length: Specifies the number of periods used for ATR calculation (default is 14).
Stochastic %K Length: Determines the period for finding the highest high and lowest low for the %K calculation (default is 14).
Stochastic %D Smoothing: Sets the smoothing factor for the %D line (default is 3).
Visual Output:
Blue Line: Represents the ATR, showing how much price moves on average over the given period.
Green Line: The %K line of the Stochastic Oscillator, showing momentum shifts in the market.
Red Line: The %D line of the Stochastic Oscillator, providing a smoothed perspective on momentum.
Use Case:
This script is useful for:
Assessing Market Volatility: Use the ATR to understand how active the market is.
Identifying Overbought/Oversold Levels: Use the Stochastic Oscillator to identify potential reversal points.
Combining Signals: Analyze both indicators together to align volatility and momentum for better trading decisions.
DS_StochA custom stochastic-based indicator with EMA smoothing. Useful for identifying overbought and oversold conditions.
Strategia 9-30 Candle con Dashboard//@version=5
indicator("Strategia 9-30 Candle con Dashboard", overlay=true)
// Impostazioni EMA
ema9 = ta.ema(close, 9)
ema30 = ta.ema(close, 30)
plot(ema9, color=color.blue, title="EMA 9")
plot(ema30, color=color.red, title="EMA 30")
// RSI e filtro
rsi = ta.rsi(close, 14)
rsiFiltroLong = rsi > 50
rsiFiltroShort = rsi < 50
// Volume e filtro
volFiltroLong = volume > ta.sma(volume, 20)
volFiltroShort = volume > ta.sma(volume, 20)
// Condizioni LONG
longCondition = ta.crossover(ema9, ema30) and close > ema9 and close > ema30 and rsiFiltroLong and volFiltroLong
plotshape(longCondition, title="Entrata Long", location=location.belowbar, color=color.green, style=shape.labelup, text="LONG")
exitLong = ta.crossunder(ema9, ema30)
plotshape(exitLong, title="Uscita Long", location=location.abovebar, color=color.orange, style=shape.labeldown, text="EXIT")
// Condizioni SHORT
shortCondition = ta.crossunder(ema9, ema30) and close < ema9 and close < ema30 and rsiFiltroShort and volFiltroShort
plotshape(shortCondition, title="Entrata Short", location=location.abovebar, color=color.red, style=shape.labeldown, text="SHORT")
exitShort = ta.crossover(ema9, ema30)
plotshape(exitShort, title="Uscita Short", location=location.belowbar, color=color.orange, style=shape.labelup, text="EXIT")
// Background per segnali forti
bgcolor(longCondition ? color.new(color.green, 85) : na, title="BG Long")
bgcolor(shortCondition ? color.new(color.red, 85) : na, title="BG Short")
// Trailing Stop
var float trailPriceLong = na
var float trailPriceShort = na
trailPerc = input.float(0.5, title="Trailing Stop %", minval=0.1, step=0.1)
if (longCondition)
trailPriceLong := close * (1 - trailPerc / 100)
else if (close > trailPriceLong and not na(trailPriceLong))
trailPriceLong := math.max(trailPriceLong, close * (1 - trailPerc / 100))
if (shortCondition)
trailPriceShort := close * (1 + trailPerc / 100)
else if (close < trailPriceShort and not na(trailPriceShort))
trailPriceShort := math.min(trailPriceShort, close * (1 + trailPerc / 100))
plot(trailPriceLong, title="Trailing Stop Long", color=color.green, style=plot.style_linebr, linewidth=1)
plot(trailPriceShort, title="Trailing Stop Short", color=color.red, style=plot.style_linebr, linewidth=1)
// Dashboard
var table dashboard = table.new(position.top_right, 2, 4, border_width=1)
bgCol = color.new(color.gray, 90)
signal = longCondition ? "LONG" : shortCondition ? "SHORT" : "-"
signalColor = longCondition ? color.green : shortCondition ? color.red : color.gray
if bar_index % 1 == 0
table.cell(dashboard, 0, 0, "Segnale:", text_color=color.white, bgcolor=bgCol)
table.cell(dashboard, 1, 0, signal, text_color=color.white, bgcolor=signalColor)
table.cell(dashboard, 0, 1, "RSI:", text_color=color.white, bgcolor=bgCol)
table.cell(dashboard, 1, 1, str.tostring(rsi, format.mintick), text_color=color.white, bgcolor=bgCol)
table.cell(dashboard, 0, 2, "Volume:", text_color=color.white, bgcolor=bgCol)
table.cell(dashboard, 1, 2, str.tostring(volume, format.volume), text_color=color.white, bgcolor=bgCol)
table.cell(dashboard, 0, 3, "EMA9 > EMA30:", text_color=color.white, bgcolor=bgCol)
table.cell(dashboard, 1, 3, str.tostring(ema9 > ema30), text_color=color.white, bgcolor=bgCol)
// Alert
alertcondition(longCondition, title="Segnale Long", message="LONG: EMA9 incrocia EMA30, RSI > 50, volume alto")
alertcondition(shortCondition, title="Segnale Short", message="SHORT: EMA9 incrocia EMA30 verso il basso, RSI < 50, volume alto")
alertcondition(exitLong, title="Uscita Long", message="Uscita da LONG: EMA9 incrocia EMA30 verso il basso")
alertcondition(exitShort, title="Uscita Short", message="Uscita da SHORT: EMA9 incrocia EMA30 verso l'alto")
EMA MAs 7EMA(ERJUANSTURK)All ema mas values are entered. 20, 50, 100,150,200,300,400. The indicator is designed simply and elegantly.