Stack Detector Stack Detector, which is showing how the ma moves as a chart goes by.
It help you the power of the waves
Médias Móveis
Quality-Controlled Trend Strategy v2 (Expectancy Focused)This script focuses on quality control rather than curve-fitting.
No repainting, no intrabar tricks, no fake equity curves.
It uses confirmed-bar entries, ATR-based risk, and clean trend logic so backtests reflect what could actually be traded live.
If you publish scripts, this is the minimum structure worth sharing.
Why this script exists
TradingView’s public scripts are flooded with:
repainting indicators
no stop-loss logic
curve-fit entries that collapse live
strategies that look good only in hindsight
This script is intentionally boring but honest.
No repainting.
No intrabar tricks.
No fake equity curves
The goal is quality control, not hype.
What this strategy enforces
✔ Confirmed bars only
✔ Single source of truth for indicators
✔ Fixed risk structure
✔ No signal repainting
✔ Clean exits with unique IDs
✔ Works on any liquid market
Trading Logic (simple & auditable)
Trend filter
EMA 50 vs EMA 200
Entry
Pullback to EMA 50
RSI confirms momentum (not oversold/overbought)
Risk
ATR-based stop
Fixed R:R
One position at a time
This is the minimum bar for a strategy to be considered publish-worthy.
Why this helps TradingView quality
Most low-value scripts fail because they:
hide repainting logic
skip exits entirely
use inconsistent calculations
rely on hindsight candles
This strategy forces discipline:
every signal is confirmed
every trade has defined risk
behavior is repeatable across symbols & timeframes
If more scripts followed this baseline, TradingView’s public library would be far more usable.
MTF EMAs: 200 EMA (1hr & 15m), 8 EMA (5m)Using the 200 ema on 1hr and 15 min timeframe to ID entry points for scalping.
Moving Average Structure ZigZag [Stable & Filtered]
(日本語説明)
このインジケーターは、移動平均線(MA)の転換に基づき、相場の「真の構造」を可視化するために開発されました。 通常のZigZagのように価格の単純な反転に依存せず、「MAのトレンド転換 + 指定した値幅の到達」という2つの条件を用いることで、レンジ相場の細かなノイズ(ダマシ)を排除し、ダウ理論に基づいた重要な高値・安値だけを結びます。
💡 主な機能
MAタイプの切り替え: SMA, EMA, HMA, VW-HMAなど、目的に合わせたトレンド感度を選択可能。
値幅フィルター(Min Deviation): 添付画像のように、小さな値動きをカットし、大きな市場構造だけを抽出します。
価格アクションへの追従: ラインはMAの数値ではなく、期間内の実最高値・最安値を正確に結び、高値更新時には自動で延伸されます。
🛠 活用シーン
環境認識: 上位足での大きな波形を確認し、現在のフェーズを定義。
ノイズ除去: 市場の主要な節目(レジサポ候補)の特定。
ダウ理論の視覚化: 高値・安値の切り上がり・切り下がりを明確化。
(English Description)
This indicator was developed to visualize the "True Market Structure" based on Moving Average (MA) reversals. Unlike standard ZigZag which relies solely on price reversals, this tool combines MA Trend Reversals and a Minimum Deviation filter to eliminate market noise and highlight significant swing highs and lows based on Dow Theory.
💡 Key Features
Multiple MA Types: Select from SMA, EMA, HMA, VW-HMA, etc., to match your preferred trend sensitivity.
Min Deviation Filter: As shown in the attached image, it filters out minor price fluctuations to extract only the major market waves.
Price Action Tracking: The lines connect the actual High/Low prices within the period, not the MA values themselves. Lines automatically extend when a trend continues to new highs/lows.
🛠 Use Cases
Market Context: Identify major wave patterns on higher timeframes to define the current phase.
Noise Reduction: Pinpoint key market levels and potential support/resistance.
Dow Theory Visualization: Clearly visualize higher highs/lows and trend shifts.
Settings
MA Type: Choose the type of Moving Average.
Moving Average Length: The lookback period for structure.
Min Deviation (Pips): The threshold to filter noise. Adjust according to the volatility of the pair.
Bar Countdown ClockBar Countdown Clock
Description:
Displays the remaining time for the current bar on the chart. The countdown label follows the previous EMA5 price to stay stable during high-volatility markets. Font size and label position are fully customizable. Works well on BTC, Gold, Forex, and other trading instruments.
How to Use:
Add the indicator to your chart.
Adjust Clock Color, Font Size, and X Offset to suit your preference.
The label will automatically track the previous EMA5 price.
The countdown updates in real-time until the current bar closes.
Tips:
Increase X Offset if the label overlaps the current bar.
For high-volatility instruments, the label remains stable by following EMA5.
EMA Length can be adjusted to change the anchor point for the label.
MTF EMA50/200 // ADX (Auto TF Pairing) with SL/TP // v6Strategy overview (EMA50/EMA200 + ADX, multi-timeframe):
This system trades only in the direction of the higher-timeframe trend and uses the current chart timeframe for precise entries.
Trend filter (Higher TF):
Bull trend: EMA50 > EMA200 and ADX ≥ threshold → only LONGs allowed
Bear trend: EMA50 < EMA200 and ADX ≥ threshold → only SHORTs allowed
If ADX is below the “no-trend” threshold, the market is considered choppy and trades are avoided.
Entry (Lower TF / chart TF):
Enter only when the chart timeframe confirms momentum in the HTF direction using one of:
Touch: price pulls back to EMA50 and closes back on the trend side
Rejection: stricter “touch + reject” near EMA50
Cross: close crosses EMA50 in the trend direction
Stop Loss (structure + volatility):
LONG: below the safer of last swing low or EMA50, minus an ATR buffer
SHORT: above the safer of last swing high or EMA50, plus an ATR buffer
Take Profit (risk-based):
Targets are set as multiples of risk (R) from entry:
TP1 = 2R (default)
TP2 = 3R (optional)
The indicator plots only the latest trade’s Entry (black line), Stop (red dashed), and TP (green dashed), and it auto-pairs the chart timeframe with a “next level up” higher timeframe for the trend filter.
VWAP roller autoBrief Description
VWAP Roller Auto is a TradingView Pine Script indicator that combines a rolling (resetting) Volume Weighted Average Price (VWAP) with dozens of dynamic support/resistance levels derived from Gann's Square of 9 principles. The VWAP resets periodically (automatically or manually) starting from a user-defined session open time, and the Gann levels "roll" with it, creating an adaptive grid of potential price reaction zones. It's designed for intraday trading and overlays directly on the price chart.
Key Features
Rolling VWAP with Custom Session Start
VWAP calculation restarts at configurable session open (default 8:30 CST, using proper Chicago timezone handling).
Auto-Adaptive Period Selection
Automatically chooses the VWAP reset period (from 2 min up to 48 hours) based on current volatility (ATR + realized range). Targets a user-defined spacing (~0.08% by default) between consecutive VWAPs to keep the grid relevant to market conditions. Falls back to manual period if disabled.
Gann Square of 9 Levels
Generates ~8 pairs of resistance (R) and support (S) levels above/below the current rolling VWAP using octave-based increments.
Two increment modes:
Points mode — fixed point steps that double octavely (e.g., 0.305, 0.610, 1.22, 2.44, etc.).
Percent mode — percentage steps scaled so the middle octave aligns near 0.025% for finer resolution on lower-priced assets.
Visual Enhancements
Colored fills between key level groups (e.g., inner ±0.25 octave in blue, ±1–2 octave zones in gray, higher extremes in yellow/red).
Labels on the right side marking important zones ("low", "normal", "high", "3/4 - ps1", "extreme - ps2").
Central VWAP line (customizable color and offset).
Table showing current period length and whether auto mode is active.
Non-Timeframe Friendly
Works on range bars, Renko, etc., using fallback settings when timeframe is non-standard.
Use Cases
Intraday Support/Resistance Trading
Treat the rolling VWAP as fair value and use the Gann-derived levels as dynamic zones for potential reversals, breakouts, or mean reversion.
Scalping and Day Trading
Auto-period ensures the grid spacing matches current volatility — tighter levels in quiet markets, wider in volatile ones — ideal for futures (ES, NQ), crypto, or forex.
Zone-Based Entries/Exits Buy near labeled support zones (e.g., "low" or "normal" volatility bottoms) when price trades below VWAP.
Sell/short near resistance zones in overbought conditions.
Watch for hits of "extreme" zones (±8 octave) as potential strong reversal signals.
Confluence Tool
Combine with order flow, volume profile, or other indicators; the colored fills highlight "value areas" similar to market profile concepts but anchored to a rolling VWAP.
In short, VWAP Roller Auto provides a sophisticated, self-adjusting Gann-inspired grid that moves with the market's fair value, helping traders identify high-probability reaction zones throughout the trading session.
SCOTTGO - MOMO RVOL Trend Painter V2 (Elite Pro)SCOTTGO - MOMO RVOL Trend Painter V2 (Elite Pro)
This professional-grade trend-following indicator identifies high-probability "Elite" entry points by combining Relative Volume (RVOL) with strict trend alignment and momentum filters. It is designed to filter out market noise and highlight only the most significant institutional moves.
Core Features
Elite Signal Logic: Triggers only when high RVOL (default >2.0x) aligns with a confirmed trend (Price vs. VWAP & 9EMA) and positive momentum (RSI & MACD).
Dynamic Bar Coloring: Instantly paints bars Green (Bullish) or Red (Bearish) when all "Elite" criteria are met.
Smart Labeling: Labels are corner-anchored to the left of the signal bar. This prevents visual clutter and ensures labels never obstruct new price action.
Detailed Tooltips: Hover over any "Elite" flag to see a comprehensive breakdown of the specific metrics (RVOL value, Trend status, RSI, and MACD) that triggered the signal.
Key Components
RVOL Threshold: Adjustable sensitivity to volume spikes.
Trend Filter: Optional requirement for price to stay above/below VWAP and the 9EMA.
Momentum Filters: Integrated RSI and MACD confirmation to avoid "exhaustion" trades.
Visual Customization: Full control over label spacing, colors, and opacity.
How to use: Look for the ⭐ ELITE flags as confirmation for trend continuation or high-volume breakouts. Use the triangles for precise candle entry points.
Disclaimer: Technical analysis tools are for informational purposes only. Trading involves significant financial risk.
Debye-Einstein Trend Oscillator [Dual Mode] | IkkeOmarDebye-Einstein Trend Oscillator
Indicator Settings Guide
Visual Settings View Mode: Switches the chart display. Select "Standard Flow" to see the raw physics energy bars and crossover lines. Select "Trend Diff (MACD)" to see the histogram that highlights momentum shifts and chaos spikes.
Physics Engine Trend Lookback: Defines the "Mass" of the trend. This sets the long-term baseline (default 1500 bars). Higher values filter out noise and focus only on macro-cycles; lower values make the system faster but noisier. Chaos Threshold (%): Controls the trigger for the Einstein (Chaos) state. Set to 95, only the top 5% of highest-energy volume events will trigger the vertical white spikes. Lowering this value makes the system more sensitive to volatility.
Flow Moving Averages MA Type: Choose between SMA (Simple) or EMA (Exponential) for the smoothing calculation. Fast / Slow Length: These settings determine the sensitivity of the momentum logic. The difference between these two lengths creates the histogram in "Trend Diff" mode.
1. Concept & Theoretical Basis
This script applies principles from Solid State Physics—specifically the Debye and Einstein models of specific heat capacity—to financial market trend analysis.
The core hypothesis is that market trends behave like physical lattices:
Low Energy State (Debye Model): The market moves in a coordinated, wave-like manner (phonons). Trends are sustainable and correlated.
High Energy State (Einstein Model): The market becomes chaotic. Individual participants (atoms) vibrate independently and violently. This represents capitulation or euphoria.
We model "Price" as the position of particles and "Volume × Range" as the thermal energy (Temperature) entering the system.
2. Implementation Models
We constructed the oscillator using three primary physical components:
A. The Trend Vector (Mass)
We assume the "Mass" of the market is its inertia relative to a long-term baseline.
Model: Distance from a 1500-period SMA, normalized by ATR.
Assumption: Price deviation from a deep baseline indicates the magnitude of the trend "force."
B. Thermodynamics (Temperature)
We define "Work" as Volume * True Range.
Temperature (T): The Percentile Rank of this Work over the lookback period (1500 bars).
Assumption: High volume combined with high range equals high thermal energy.
C. The Dual Regimes (Amplifiers)
This is the engine of the script. We apply a scalar multiplier to the Trend Vector based on the current Temperature (T).
Debye Regime (Sustainable): When T is below the critical threshold (95%), we use a polynomial function (T^2). This mimics the Debye T^3 law where energy scales smoothly.
Effect: Smoothly amplifies standard trends.
Einstein Regime (Chaos): When T breaches the critical threshold (95%), we switch to an exponential function derived from the Einstein Solid model.
Effect: Creates massive vertical spikes during trend exhaustions or breakouts.
3. Code Explanation
The Physics Scalars
debye_amp(t) => 1.0 + (math.pow(t, 2) * 5.0)
Defines the sustainable state multiplier. Squaring the temperature t creates a non-linear but smooth response curve that gradually increases with volatility.
einstein_amp(t) => 1.0 + ((1.0 / (math.exp(1.0 / t_safe) - 1.0)) * 15.0)
Deep Dive: This function applies the Bose-Einstein distribution formula (1 / (e^(1/T) - 1)).
The Physics: In quantum mechanics, this formula calculates the occupancy of energy states. At low temperatures, the value is effectively zero (the "frozen" state).
The Function: As our market "Temperature" (T) rises, the denominator shrinks, causing the output to grow exponentially.
The Result: This mathematically forces the system to ignore low-volatility noise but react explosively once the "Boiling Point" is reached, creating the vertical spikes seen on the chart.
is_einstein = (T * 100) >= thresh_einstein
A boolean check that determines if the current market energy (Temperature) has exceeded the user-defined chaos threshold (default 95%).
physics_scalar = is_einstein ? einstein_amp(T) : debye_amp(T)
The regime switch. If the threshold is breached, the system applies the exponential Einstein scalar; otherwise, it applies the polynomial Debye scalar.
Trend Differentiation Logic
final_flow = trend_vector * physics_scalar
Calculates the primary oscillator value by multiplying the directional Trend Vector (Mass) by the active Physics Scalar (Energy).
diff_val = ma_fast - ma_slow
Calculates the momentum of the flow itself by subtracting the Slow Moving Average from the Fast Moving Average. This creates the MACD-style histogram.
4. Visual Reporting & Chart Analysis
Referring to the generated charts (Trend Diff Mode):
The Histogram: Represents the diff_val (Fast MA - Slow MA).
Cyan/Pink: Standard trend momentum (Debye mode).
White Spikes: These represent the Einstein Threshold (Chaos). These spikes generally appear at local bottoms or explosive breakout points, confirming that "Temperature" has exceeded the 95th percentile.
Zero Line: Crossing the zero line implies the trend momentum has shifted (Fast MA crossed Slow MA).
5. Assumptions & Limitations
A. The "Always in Trend" Bias
The "Trend Diff" mode calculates the delta between two moving averages of the flow.
Risk: MAs are laggy by definition. By using a 200/500 MA combo on the oscillator, we are smoothing the data significantly.
Consequence: In a ranging market, the MAs will converge near zero. However, if a sudden burst of Volume enters (Temperature rises) without price moving much, the Einstein scalar will trigger. This may amplify a small move into a large signal, implying a trend where there is only volatility.
B. Lag
The lookback period is 1500 bars. This is a "Macro" trend system. It will not react quickly to short-term reversals unless the Volume/Range shock is massive enough to trigger the Einstein scalar immediately.
Example "physics values"
In the Standard Flow view, the vertical columns represent the raw energy of the trend—Teal and Red bars indicate normal, sustainable market movement (Debye state), while bright Lime and Fuchsia bars signal chaotic, high-volatility events (Einstein state). The height of these bars shows the combined strength of price direction and volume. Overlaying these columns are two moving averages, a fast Blue line and a slow Red line, which smooth out this data to show the underlying momentum. When the Blue line crosses the Red line, it signals a shift in the trend's direction, while the color of the bars warns you if that move is stable or nearing exhaustion.
MA Alignment DetectorMA Alignment Detector : If it is bullish MA alignment, the color becomes red, if it is bearlish MA alignment, the color become green.
CryptoFlux Dynamo [JOAT]CryptoFlux Dynamo: Velocity Scalping Strategy
WHAT THIS STRATEGY IS
CryptoFlux Dynamo is an open-source Pine Script v6 strategy designed for momentum-based scalping on cryptocurrency perpetual futures. It combines multiple technical analysis methods into a unified system that adapts its behavior based on current market volatility conditions.
This script is published open-source so you can read, understand, and modify the complete logic. The description below explains everything the strategy does so that traders who cannot read Pine Script can fully understand how it works before using it.
HOW THIS STRATEGY IS ORIGINAL AND WHY THE INDICATORS ARE COMBINED
This strategy uses well-known indicators (MACD, EMA, RSI, MFI, Bollinger Bands, Keltner Channels, ATR). The originality is not in the individual indicators themselves, but in the specific way they are integrated into a regime-adaptive system. Here is the detailed justification for why these components are combined and how they work together:
The Problem Being Solved:
Standard indicator-based strategies use fixed thresholds. For example, a typical MACD strategy might enter when the histogram crosses above zero. However, in cryptocurrency markets, volatility changes dramatically throughout the day and week. A MACD crossover during a low-volatility consolidation period has very different implications than the same crossover during a high-volatility trending period. Using the same entry thresholds and stop distances in both conditions leads to either:
Too many false signals during consolidation (if thresholds are loose)
Missing valid opportunities during expansion (if thresholds are tight)
Stops that are too tight during volatility spikes (causing premature exits)
Stops that are too wide during compression (giving back profits)
The Solution Approach:
This strategy first classifies the current volatility regime using normalized ATR (ATR as a percentage of price), then dynamically adjusts ALL other parameters based on that classification. This creates a context-aware system rather than a static threshold comparison.
How Each Component Contributes to the System:
ATR-Based Regime Classification (The Foundation)
The strategy calculates ATR over 21 periods, smooths it with a 13-period EMA to reduce noise from wicks, then divides by price to get a normalized percentage. This ATR% is classified into three regimes:
- Compression (ATR% < 0.8%): Market is consolidating, breakouts are more likely but false signals are common
- Expansion (ATR% 0.8% - 1.6%): Normal trending conditions
- Velocity (ATR% > 1.6%): High volatility, larger moves but also larger adverse excursions
This regime classification then controls stop distances, profit targets, trailing stop offsets, and signal strength requirements. The regime acts as a "meta-parameter" that tunes the entire system.
EMA Ribbon (8/21/34) - Trend Structure Detection
The three EMAs establish trend direction and structure. When EMA 8 > EMA 21 > EMA 34, the trend structure is bullish. The slope of the middle EMA (21) is calculated over 8 bars and converted to degrees using arctangent. This slope measurement quantifies trend strength, not just direction.
Why these specific periods? The 8/21/34 sequence follows Fibonacci-like spacing and provides good separation on 5-minute cryptocurrency charts. The fast EMA (8) responds to immediate price action, the mid EMA (21) represents the short-term trend, and the slow EMA (34) acts as a trend filter.
The EMA ribbon works with the regime classification: during compression regimes, the strategy requires stronger ribbon alignment before entry because false breakouts are more common.
MACD (8/21/5) - Momentum Measurement
The MACD uses faster parameters (8/21/5) than the standard (12/26/9) because cryptocurrency markets move faster than traditional markets. The histogram is smoothed with a 5-period EMA to reduce noise.
The key innovation is the adaptive histogram baseline. Instead of using a fixed threshold, the strategy calculates a rolling baseline from the smoothed absolute histogram value, then multiplies by a sensitivity factor (1.15). This means the threshold for "significant momentum" automatically adjusts based on recent momentum levels.
The MACD works with the regime classification: during velocity regimes, the histogram baseline is effectively higher because recent momentum has been stronger, preventing entries on relatively weak momentum.
RSI (21 period) and MFI (21 period) - Independent Momentum Confirmation
RSI measures momentum using price changes only. MFI (Money Flow Index) measures momentum using price AND volume. By requiring both to confirm, the strategy filters out price moves that lack volume support.
The 21-period length is longer than typical (14) to reduce noise on 5-minute charts. The trigger threshold (55 for longs, 45 for shorts) is slightly offset from 50 to require momentum in the trade direction, not just neutral readings.
These indicators work together: a signal requires RSI > 55 AND MFI > 55 for longs. This dual confirmation reduces false signals from price manipulation or low-volume moves.
Bollinger Bands (1.5 mult) and Keltner Channels (1.8 mult) - Squeeze Detection
When Bollinger Bands contract inside Keltner Channels, volatility is compressing and a breakout is likely. This is the "squeeze" condition. When the bands expand back outside the channels, the squeeze "releases."
The strategy uses a 1.5 multiplier for Bollinger Bands (tighter than standard 2.0) and 1.8 for Keltner Channels. These values were chosen to identify meaningful squeezes on 5-minute cryptocurrency charts without triggering too frequently.
The squeeze detection works with the regime classification: squeeze releases during compression regimes receive additional signal strength points because breakouts from consolidation are more significant.
Volume Impulse Detection - Institutional Participation Filter
The strategy calculates a volume baseline (34-period SMA) and standard deviation. A "volume impulse" is detected when current volume exceeds the baseline by 1.15x OR when the volume z-score exceeds 0.5.
This filter ensures entries occur when there is meaningful market participation, not during low-volume periods where price moves are less reliable.
Volume impulse is required for all entries and adds points to the composite signal strength score.
Cycle Oscillator - Trend Alignment Filter
The strategy calculates a 55-period EMA as a cycle basis, then measures price deviation from this basis as a percentage. When price is more than 0.15% above the cycle basis, the cycle is bullish. When more than 0.15% below, the cycle is bearish.
This filter prevents counter-trend entries. Long signals require bullish cycle alignment; short signals require bearish cycle alignment.
BTC Dominance Filter (Optional) - Market Regime Filter
The strategy can optionally use BTC.D (Bitcoin Dominance) as a market regime filter. When BTC dominance is rising (slope > 0.12), the market is in "risk-off" mode and long entries on altcoins are filtered. When dominance is falling (slope < -0.12), short entries are filtered.
This filter is optional because the BTC.D data feed may lag during low-liquidity periods.
How The Components Work Together (The Mashup Justification):
The strategy uses a composite scoring system where each signal pathway contributes points:
Trend Break pathway (30 points): Requires EMA ribbon alignment + positive slope + price breaks above recent structure high
Momentum Surge pathway (30 points): Requires MACD histogram > adaptive baseline + MACD line > signal + RSI > 55 + MFI > 55 + volume impulse
Squeeze Release pathway (25 points): Requires BB inside KC (squeeze) then release + momentum bias + histogram confirmation
Micro Pullback pathway (15 points): Requires shallow retracement to fast EMA within established trend + histogram confirmation + volume impulse
Additional modifiers:
+5 points if volume impulse is present, -5 if absent
+5 points in velocity regime, -2 in compression regime
+5 points if cycle is aligned, -5 if counter-trend
A trade only executes when the composite score reaches the minimum threshold (default 55) AND all filters agree (session, cycle bias, BTC dominance if enabled).
This scoring system is the core innovation: instead of requiring ALL conditions to be true (which would generate very few signals) or ANY condition to be true (which would generate too many false signals), the strategy requires ENOUGH conditions to be true, with different conditions contributing different weights based on their reliability.
HOW THE STRATEGY CALCULATES ENTRIES AND EXITS
Entry Logic:
1. Calculate current volatility regime from ATR%
2. Calculate all indicator values (MACD, EMA, RSI, MFI, squeeze, volume)
3. Evaluate each signal pathway and sum points
4. Check all filters (session, cycle, dominance, kill switch)
5. If composite score >= 55 AND all filters pass, generate entry signal
6. Calculate position size based on risk per trade and regime-adjusted stop distance
7. Execute entry with regime name as comment
Position Sizing Formula:
RiskCapital = Equity * (0.65 / 100)
StopDistance = ATR * StopMultiplier(regime)
RawQuantity = RiskCapital / StopDistance
MaxQuantity = Equity * (12 / 100) / Price
Quantity = min(RawQuantity, MaxQuantity)
Quantity = round(Quantity / 0.001) * 0.001
This ensures each trade risks approximately 0.65% of equity regardless of volatility, while capping total exposure at 12% of equity.
Stop Loss Calculation:
Stop distance is ATR multiplied by a regime-specific multiplier:
Compression regime: 1.05x ATR (tighter stops because moves are smaller)
Expansion regime: 1.55x ATR (standard stops)
Velocity regime: 2.1x ATR (wider stops to avoid premature exits during volatility)
Take Profit Calculation:
Target distance is ATR multiplied by regime-specific multiplier and base risk/reward:
Compression regime: 1.6x ATR * 1.8 base R:R * 0.9 regime bonus = approximately 2.6x ATR
Expansion regime: 2.05x ATR * 1.8 base R:R * 1.0 regime bonus = approximately 3.7x ATR
Velocity regime: 2.8x ATR * 1.8 base R:R * 1.15 regime bonus = approximately 5.8x ATR
Trailing Stop Logic:
When adaptive trailing is enabled, the strategy calculates a trailing offset based on ATR and regime:
Compression regime: 1.1x base offset (looser trailing to avoid noise)
Expansion regime: 1.0x base offset (standard)
Velocity regime: 0.8x base offset (tighter trailing to lock in profits during fast moves)
The trailing stop only activates when it would be tighter than the initial stop.
Momentum Fail-Safe Exits:
The strategy closes positions early if momentum reverses:
Long positions close if MACD histogram turns negative OR EMA ribbon structure breaks (fast EMA crosses below mid EMA)
Short positions close if MACD histogram turns positive OR EMA ribbon structure breaks
This prevents holding through momentum reversals even if stop loss hasn't been hit.
Kill Switch:
If maximum drawdown exceeds 6.5%, the strategy disables new entries until manually reset. This prevents continued trading during adverse conditions.
HOW TO USE THIS STRATEGY
Step 1: Apply to Chart
Use a 5-minute chart of a high-liquidity cryptocurrency perpetual (BTC/USDT, ETH/USDT recommended)
Ensure at least 200 bars of history are loaded for indicator stabilization
Use standard candlestick charts only (not Heikin Ashi, Renko, or other non-standard types)
Step 2: Understand the Visual Elements
EMA Ribbon: Three lines (8/21/34 periods) showing trend structure. Bullish when stacked upward, bearish when stacked downward.
Background Color: Shows current volatility regime
- Indigo/dark blue = Compression (low volatility)
- Purple = Expansion (normal volatility)
- Magenta/pink = Velocity (high volatility)
Bar Colors: Reflect signal strength divergence. Brighter colors indicate stronger directional bias.
Triangle Markers: Entry signals. Up triangles below bars = long entry. Down triangles above bars = short entry.
Dashboard (top-right): Real-time display of regime, ATR%, signal strengths, position status, stops, targets, and risk metrics.
Step 3: Interpret the Dashboard
Regime: Current volatility classification (Compression/Expansion/Velocity)
ATR%: Normalized volatility as percentage of price
Long/Short Strength: Current composite signal scores (0-100)
Cycle Osc: Price deviation from 55-period EMA as percentage
Dominance: BTC.D slope and filter status
Position: Current position direction or "Flat"
Stop/Target: Current stop loss and take profit levels
Kill Switch: Status of drawdown protection
Volume Z: Current volume z-score
Impulse: Whether volume impulse condition is met
Step 4: Adjust Parameters for Your Needs
For more conservative trading: Increase "Minimum Composite Signal Strength" to 65 or higher
For more aggressive trading: Decrease to 50 (but expect more false signals)
For higher timeframes (15m+): Increase "Structure Break Window" to 12-15, increase "RSI Momentum Trigger" to 58
For lower liquidity pairs: Increase "Volume Impulse Multiplier" to 1.3, increase slippage in strategy properties
To disable short selling: Uncheck "Enable Short Structure"
To disable BTC dominance filter: Uncheck "BTC Dominance Confirmation"
STRATEGY PROPERTIES (BACKTEST SETTINGS)
These are the exact settings used in the strategy's Properties dialog box. You must use these same settings when evaluating the backtest results shown in the publication:
Initial Capital: $100,000
Justification: This amount is higher than typical retail accounts. I chose this value to demonstrate percentage-based returns that scale proportionally. The strategy uses percentage-based position sizing (0.65% risk per trade), so a $10,000 account would see the same percentage returns with 10x smaller position sizes. The absolute dollar amounts in the backtest should be interpreted as percentages of capital.
Commission: 0.04% (commission_value = 0.04)
Justification: This reflects typical perpetual futures exchange fees. Major exchanges charge between 0.02% (maker) and 0.075% (taker). The 0.04% value is a reasonable middle estimate. If your exchange charges different fees, adjust this value accordingly. Higher fees will reduce net profitability.
Slippage: 1 tick
Justification: This is conservative for liquid pairs like BTC/USDT on major exchanges during normal conditions. For less liquid altcoins or during high volatility, actual slippage may be higher. If you trade less liquid pairs, increase this value to 2-3 ticks for more realistic results.
Pyramiding: 1
Justification: No position stacking. The strategy holds only one position at a time. This simplifies risk management and prevents overexposure.
calc_on_every_tick: true
Justification: The strategy evaluates on every price update, not just bar close. This is necessary for scalping timeframes where waiting for bar close would miss opportunities. Note that this setting means backtest results may differ slightly from bar-close-only evaluation.
calc_on_order_fills: true
Justification: The strategy recalculates immediately after order fills for faster response to position changes.
RISK PER TRADE JUSTIFICATION
The default risk per trade is 0.65% of equity. This is well within the TradingView guideline that "risking more than 5-10% on a trade is not typically considered viable."
With the 12% maximum exposure cap, even if the strategy takes multiple consecutive losses, the total risk remains manageable. The kill switch at 6.5% drawdown provides additional protection by halting new entries during adverse conditions.
The position sizing formula ensures that stop distance (which varies by regime) is accounted for, so actual risk per trade remains approximately 0.65% regardless of volatility conditions.
SAMPLE SIZE CONSIDERATIONS
For statistically meaningful backtest results, you should select a dataset that generates at least 100 trades. On 5-minute BTC/USDT charts, this typically requires:
2-3 months of data during normal market conditions
1-2 months during high-volatility periods
3-4 months during low-volatility consolidation periods
The strategy's selectivity (requiring 55+ composite score plus all filters) means it generates fewer signals than less filtered approaches. If your backtest shows fewer than 100 trades, extend the date range or reduce the minimum signal strength threshold.
Fewer than 100 trades produces statistically unreliable results. Win rate, profit factor, and other metrics can vary significantly with small sample sizes.
STRATEGY DESIGN COMPROMISES AND LIMITATIONS
Every strategy involves trade-offs. Here are the compromises made in this design and the limitations you should understand:
Selectivity vs. Opportunity Trade-off
The 55-point minimum threshold filters many potential trades. This reduces false signals but also misses valid setups that don't meet all criteria. Lowering the threshold increases trade frequency but decreases win rate. There is no "correct" threshold; it depends on your preference for fewer higher-quality signals vs. more signals with lower individual quality.
Regime Classification Lag
The ATR-based regime detection uses historical data (21 periods + 13-period smoothing). It cannot predict sudden volatility spikes. During flash crashes or black swan events, the strategy may be classified in the wrong regime for several bars before the classification updates. This is an inherent limitation of any lagging indicator.
Indicator Parameter Sensitivity
The default parameters (MACD 8/21/5, EMA 8/21/34, RSI 21, etc.) are tuned for BTC/ETH perpetuals on 5-minute charts during 2024 market conditions. Different assets, timeframes, or market regimes may require different parameters. There is no guarantee that parameters optimized on historical data will perform similarly in the future.
BTC Dominance Filter Limitations
The CRYPTOCAP:BTC.D data feed may lag during low-liquidity periods or weekends. The dominance slope calculation uses a 5-bar SMA, adding additional delay. If you notice the filter behaving unexpectedly, consider disabling it.
Backtest vs. Live Execution Differences
TradingView backtesting does not replicate actual broker execution. Key differences:
Backtests assume perfect fills at calculated prices; real execution involves order book depth, latency, and partial fills
The calc_on_every_tick setting improves backtest realism but still cannot capture sub-bar price action or order book dynamics
Commission and slippage settings are estimates; actual costs vary by exchange, time of day, and market conditions
Funding rates on perpetual futures are not modeled in backtests and can significantly impact profitability over time
Exchange-specific limitations (position limits, liquidation mechanics, order types) are not modeled
Market Condition Dependencies
This strategy is designed for trending and breakout conditions. During extended sideways consolidation with no clear direction, the strategy may generate few signals or experience whipsaws. No strategy performs well in all market conditions.
Cryptocurrency-Specific Risks
Cryptocurrency markets operate 24/7 without session boundaries. This means:
No natural "overnight" risk reduction
Volatility can spike at any time
Liquidity varies significantly by time of day
Exchange outages or issues can occur at any time
WHAT THIS STRATEGY DOES NOT DO
To be straightforward about limitations:
This strategy does not guarantee profits. Past backtest performance does not indicate future results.
This strategy does not predict the future. It reacts to current conditions based on historical patterns.
This strategy does not account for funding rates, which can significantly impact perpetual futures profitability.
This strategy does not model exchange-specific execution issues (partial fills, requotes, outages).
This strategy does not adapt to fundamental news events or black swan scenarios.
This strategy is not optimized for all market conditions. It may underperform during extended consolidation.
IMPORTANT RISK WARNINGS
Past performance does not guarantee future results. The backtest results shown reflect specific historical market conditions and parameter settings. Markets change constantly, and strategies that performed well historically may underperform or lose money in the future. A single backtest run does not constitute proof of future profitability.
Trading involves substantial risk of loss. Cryptocurrency derivatives are highly volatile instruments. You can lose your entire investment. Only trade with capital you can afford to lose completely.
This is not financial advice. This strategy is provided for educational and informational purposes only. It does not constitute investment advice, trading recommendations, or any form of financial guidance. The author is not a licensed financial advisor.
You are responsible for your own decisions. Before using this strategy with real capital:
Thoroughly understand the code and logic by reading the open-source implementation
Forward test with paper trading or very small positions for an extended period
Verify that commission, slippage, and execution assumptions match your actual trading environment
Understand that live results will differ from backtest results
Consider consulting with a qualified financial advisor
No guarantees or warranties. This strategy is provided "as is" without any guarantees of profitability, accuracy, or suitability for any purpose. The author is not responsible for any losses incurred from using this strategy.
OPEN-SOURCE CODE STRUCTURE
The strategy code is organized into these sections for readability:
Configuration Architecture: Input parameters organized into logical groups (Core Controls, Optimization Constants, Regime Intelligence, Signal Pathways, Risk Architecture, Visualization)
Helper Functions: calcQty() for position sizing, clamp01() and normalize() for value normalization, calcMFI() for Money Flow Index calculation
Core Indicator Engine: EMA ribbon, ATR and regime classification, MACD with adaptive baseline, RSI, MFI, volume analytics, cycle oscillator, BTC dominance filter, squeeze detection
Signal Pathway Logic: Trend break, momentum surge, squeeze release, micro pullback pathways with composite scoring
Entry/Exit Orchestration: Signal filtering, position sizing, entry execution, stop/target calculation, trailing stop logic, momentum fail-safe exits
Visualization Layer: EMA plots, regime background, bar coloring, signal labels, dashboard table
You can read and modify any part of the code. Understanding the logic before deployment is strongly recommended.
- Made with passion by officialjackofalltrades
Mag 7 EMA Trend MonitorDashboard Layout:
1. Symbol Column: The Mag 7 tickers.
2. Trend Column: Visual Bull/Bear status.
3. Strength Column: Percentage distance from the mean (EMA 21).
4. Aggregate Row: Summary of market breadth and average sector pull/push.
How to Interpret the Trend Strength:
• Positive %: The stock is trading above its 21 EMA. A very high number (e.g., $+15\%$) might suggest the stock is "overbought" or overextended.
• Negative %: The stock is trading below its 21 EMA. A very low number (e.g., $-10\%$) might suggest it is "oversold."
• Avg Strength: This gives you a bird's-eye view of the sector. If the aggregate is "5 Up / 2 Down" but the Avg Strength is only $+0.5\%$, the trend is weak and might be exhausting.
"Pro-tips" for tool:
• Multi-Timeframe Correlation: Try setting the Dashboard Timeframe to "D" (Daily) while trading on a "5m" or "15m" chart. This allows you to see if your intraday trade is aligned with the "Big Money" trend of the week.
• The 4/7 Rule: Watch for that Aggregate row to hit 4 out of 7. In the Mag 7, since these stocks carry so much weight in the SPY and QQQ, a shift to a majority (4+) often precedes a move in the overall market indices.
KAMA Oscillator | IkkeOmarThis script transforms the Kaufman Adaptive Moving Average (KAMA) into an oscillator format, designed to visualize trend direction with reduced noise sensitivity. It operates in two modes: a Raw mode that tracks price levels directly, and a Normalized mode that bounds the oscillator between -1 and +1 for easier comparison across assets.
The calculations are the same as for the Normalized KAMA Oscillator, but I added a few features that users of the old version wouldn't necessarily want.
How it works
Efficiency Ratio (ER): The script calculates the "efficiency" of price movement by comparing the net direction of price to the total volatility over a set period.
Adaptive Smoothing:
When volatility is high but direction is unclear (choppy), the KAMA slows down to filter noise.
When price trends clearly, the KAMA speeds up to track the move.
Normalization (Optional): If enabled, the script takes the raw KAMA value and scales it relative to its highest and lowest points over the Normalization lookback period. The result oscillates between -1 (extreme low) and +1 (extreme high).
The SMA Signal Logic
The script allows you to overlay an SMA (Simple Moving Average) on the oscillator. This serves as a dynamic baseline for the oscillator's momentum.
Signal Generation: A signal is generated when the KAMA Oscillator crosses its SMA.
Bullish: Oscillator crosses above the SMA.
Bearish: Oscillator crosses below the SMA.
Lag vs. Noise Trade-off:
Advantage (Reduced Lag): Crossing the SMA often triggers a signal earlier than waiting for the oscillator to change color (slope change) or cross the zero line. It identifies when immediate momentum is outperforming the recent average.
Risk (Increased Noise): During consolidation, the oscillator will hover close to the SMA line. This increases the probability of "whipsaws" (false signals) where the line crosses back and forth rapidly without a sustained trend. This signal is aggressive and should be used with trend filters.
5x Multi-Timeframe Moving AveragesSince I use EMA lines a lot and I typically want them based on one timeframe - say: D1 - while looking into higher or lower timeframes, I made this simple indicator:
- Up to 5 moving averages (SMA, EMA, ...)
- on chart timeframe or any defined timeframe (W, D, H4, H1, 30min, ...)
- each with user defined length / number of periods of calculation
- each in user defined line style, width and color.
Straight forward but very handy. Enjoy.
Juergen
Triple EMA + Key Levels [Scalping-Algo]TITLE: Triple EMA Day Trading System with Multi-Timeframe Support/Resistance Levels
DESCRIPTION:
📊 Overview
This indicator combines trend-following EMAs with key historical price levels to create a complete day trading toolkit. It helps traders identify trend direction while highlighting important support and resistance zones from multiple timeframes.
🎯 Purpose & Trading Application
Day traders often need to quickly assess:
1. Current trend direction (using EMAs)
2. Key price levels where reversals or breakouts may occur
This indicator solves both needs in one tool, reducing chart clutter from multiple indicators.
📈 How It Works
TREND IDENTIFICATION (EMAs):
- EMA 13 (Yellow): Fast EMA for short-term momentum and entry timing
- EMA 48 (Purple): Medium EMA for intraday trend direction
- EMA 200 (Red): Slow EMA for overall trend bias
Trading Logic:
- When price is above all 3 EMAs = Strong bullish bias
- When price is below all 3 EMAs = Strong bearish bias
- EMA crossovers signal potential trend changes
- The 13/48 crossover is particularly useful for intraday entries
SUPPORT & RESISTANCE LEVELS:
- Previous Day High/Low (Green, Solid): Most recent daily range - high probability reaction zones
- 2-Day High/Low (Blue, Dashed): Extended lookback for stronger levels
- Previous Week High/Low (Orange, Dotted): Major institutional levels
Why These Levels Matter:
Previous day and weekly highs/lows are watched by many traders and algorithms. Price often:
- Reverses at these levels (support/resistance)
- Accelerates through them (breakout trades)
🔧 How To Use
FOR TREND TRADING:
1. Identify bias using EMA stack (all 3 aligned = strong trend)
2. Look for pullbacks to EMA 13 or 48 for entries
3. Use key levels as profit targets
FOR REVERSAL TRADING:
1. Watch for price approaching previous day/week levels
2. Look for rejection candles at these levels
3. Use EMA 13 break as confirmation
FOR BREAKOUT TRADING:
1. Identify consolidation near key levels
2. Enter on break of level with volume
3. Use opposite level as target
⚙️ Settings
All parameters are fixed for simplicity:
- EMAs: 13, 48, 200 periods
- Levels: Previous Day, 2-Day, Previous Week
- All lines thickness: 2
📝 Notes
- Best used on intraday timeframes (1min to 1hour)
- Levels update automatically each day/week
- Labels on right side identify each level (PDH, PDL, 2DH, 2DL, PWH, PWL)
---
TAGS: ema, daytrading, support, resistance, levels, intraday, trend, scalping, swingtrading
LR Candles V2.1IMPORTANT: Use this strategy only with Heikin Ashi candles; otherwise, the results will be negative.
The use of this strategy is solely and exclusively under the responsibility of the operator.
To perform testing correctly and as close to market reality as possible, we suggest setting the strategy preferences as follows:
Slippage = 3
Using bar magnifico = Enabled
Commission = Completed
Detail: It is important to include at least 1,000 trades in the test. This provides a certain robustness in the historical analysis of a strategy. Values lower than this may alter the expected results when trading in real life.
Tip:
Play around with different time frames and calibrations on the strategic indicator. Examples include unchecking Ling-Reg, unchecking EMA, or using both in combination. Look for the best probability and results for a specific asset.
The strategy usually performs well on time frames longer than 1 hour; this is what has been observed.
Elite MTF EMA Reclaim StrategyThis script is a 6-minute execution MTF EMA “retest → reclaim” strategy. It looks for trend-aligned pullbacks into fast EMAs, then enters when price reclaims and (optionally) retests the reclaim level—while filtering out chop (low trend strength/volatility or recent EMA20/50 crosses) and enforcing higher-timeframe alignment (Daily + 1H, or whichever you select).
How to use
Run it on a 6-minute chart (that’s what the presets are tuned for).
Pick your Market (Forex / XAUUSD / Crypto / Indices) and a Preset:
Elite = strictest, cleanest (fewer signals)
Balanced = middle ground
Aggressive = most signals, loosest filters
Set HTF Alignment Mode:
D + H1 (recommended) for highest quality
Off if you want more trades / LTF-only testing
Leave Kill Chop = ON (recommended). If you’re not getting trades, this is usually the blocker.
Choose entry behavior:
If Require Retest = true, entries happen on the retest after reclaim (cleaner, later).
If Require Retest = false, entries trigger on reclaim using Reclaim Timing Default:
“Preset” uses the strategy’s recommended default per market/preset
or force Reclaim close / Next bar confirmation
For backtesting, keep Mode = Strategy (Backtest). For alerts/visual-only, set Mode = Indicator (Signals Only).
Use Show Signals (All Modes) to toggle triangles on/off without affecting trades.
Tip: If TradingView says “not enough data,” switch symbol history to “All,” reduce HTF alignment (try H1 only), or backtest a more recent date range.
MA Distance MonitorMA Distance Monitor - Custom
Overview
The MA Distance Monitor is a professional-grade dashboard designed for traders who need to track the relationship between price and multiple Moving Averages simultaneously.
Unlike standard indicators that simply plot lines, this tool quantifies exactly how far the price is from your key levels (in Percentage or Price terms). This is crucial for identifying Mean Reversion opportunities (when price is overextended) and confirming Trend Strength.
Key Features
1. 5 Fully Configurable Moving Averages
Monitor 5 distinct MAs at once.
Default Setup: 5, 10, 20, 50, and 200 SMA (Simple Moving Average) — widely used institutional levels.
Customization: Switch any individual MA between SMA and EMA (Exponential Moving Average) and change lengths to fit your strategy.
2. Smart Dashboard (Clean Mode by Default)
The on-screen table gives you real-time data without cluttering your chart.
Clean Mode: By default, it shows only the Distance %, giving you a minimalist view of market extension.
Expandable: In the settings, you can enable additional columns to see the MA Name, MA Price, and Warning Thresholds.
Borders: Toggle table grid lines on or off for a seamless look.
3. "Overextended" Warning System
Set a specific "Warn %" threshold for each MA (e.g., 5%).
If the price deviates beyond this threshold, the indicator highlights the data in Orange (or your custom color).
Use Case: This helps identify when price has moved too far, too fast, signaling a potential pullback or reversal.
4. Chart Scale Labels
Floating labels appear on the right-side price scale, marking the exact price level of your MAs.
These labels dynamically show the current distance %, keeping your eyes on the price action.
5. Advanced Theming
Dark Mode: High-contrast colors optimized for dark charts.
Light Mode: Optimized for bright backgrounds.
Custom: Fully control every color (Bullish, Bearish, Warning, Text, Headers, Borders) to match your chart aesthetic perfectly.
How to Use
Interpreting the Data
Green: Price is Above the Moving Average (Bullish Trend).
Red: Price is Below the Moving Average (Bearish Trend).
Orange (Warning): Price is Overextended (Distance > Threshold). Watch for mean reversion.
Settings Guide
MA Configuration: Set your Lengths and Types (SMA/EMA).
Display & Styling: * Toggle Show Dashboard Table to hide/view the table.
Toggle Show Table Header or Show Table Borders for layout preference.
Enable Show MA Name or Show MA Price for more detailed data.
Colors: Select "Custom" in the Theme dropdown to apply your own color palette.
Alerts
This script includes built-in alertcondition events for automation:
Crossover: Triggered when Price crosses OVER a specific MA.
Crossunder: Triggered when Price crosses UNDER a specific MA.
To set an alert:
Click the "Alert" button in TradingView.
Select "MA Dist Custom" as the condition.
Choose the specific crossing event (e.g., "Cross Over MA 5").
Created by Psycholfye
Elite MTF EMA Reclaim Signals Only ( With Market Presets)This indicator is a multi-timeframe trend-continuation entry tool.
It’s designed to help you enter pullback trades in strong trends while blocking choppy or low-quality conditions.
It works by:
Requiring Daily + 1H trend alignment
Enforcing EMA structure (5/10/20/50) on the 6-minute chart
Confirming momentum (EMA slope + curvature)
Blocking trades during chop (low ATR, weak ADX, tight EMAs, recent EMA crosses)
Triggering entries only after a Pullback → Reclaim → (optional) Retest
How to use it (6-minute execution)
Set chart to 6-minute
Select Market (Forex, XAUUSD, Crypto, or Indices)
Select Preset
Elite → fewest, cleanest trades
Balanced → best everyday default
Aggressive → more signals, more risk
Trade only when you see a LONG or SHORT triangle
Avoid trades when CHOP or HTF block markers appear
Place stops beyond EMA50 or recent structure, target 2R–4R+
Optional:
Turn on Looser LTF Mode or Allow reclaim without pullback for more signals
Use Next bar confirmation for cleaner entries, Reclaim close for faster entries
Bottom line:
The indicator doesn’t hunt trades—it filters the market so you only trade when trend, momentum, and structure are aligned.
Session Levels (3of3)This system is designed to strip away market noise and highlight the areas where institutional capital is actually active.
Most retail traders fail because they treat every price movement with equal importance. They often enter trades in the "middle of nowhere" or get trapped by "fakeouts" at standard support/resistance levels.
This tool solves:
Context Blindness: It defines the "playing field" by marking institutional session boundaries (Asia, London, NY), so you know exactly where liquidity resides.
Computation Lag: Standard Volume Profiles often slow down a chart. Our Optimized VPC provides the "Magnet" price without the lag.
Indecision: By requiring a Market Structure Shift (MSS) alongside a Fair Value Gap (FVG), it removes the guesswork of "Is this a reversal or a continuation?"
Why It Is Unique:
Unlike standard indicators that look at a single data point (like just price or just volume), this is a Holistic System.
Auto-Mitigation: Most FVG indicators clutter your screen with old boxes. This tool automatically deletes zones once price "fills" them, keeping your focus on live opportunities.
Institutional "Sweep" Logic: It specifically tracks if price has "stolen" the liquidity from a previous session before issuing a signal.
The "Vegas" Filter: It uses the 144 EMA (Vegas Floor) as a high-probability institutional trend filter, ensuring you aren't fighting the primary trend.
When testing this, track one specific stat: "Did price hit the VPC after the MSS?" You will likely find that even when the trade doesn't reach the far PRZ targets, it reaches the VPC Magnet over 70% of the time. Focusing on that "snap-back" to the orange line is the secret to a high win rate with this tool.
EMA 9, 21, 200//@version=6
indicator("EMA 9, 21, 200", overlay=true)
// EMA inputs
emaFastLength = 9
emaMidLength = 21
emaSlowLength = 200
// Calculate EMAs
emaFast = ta.ema(close, emaFastLength)
emaMid = ta.ema(close, emaMidLength)
emaSlow = ta.ema(close, emaSlowLength)
// Plot EMAs
plot(emaFast, color=color.yellow, title="EMA 9", linewidth=2)
plot(emaMid, color=color.orange, title="EMA 21", linewidth=2)
plot(emaSlow, color=color.red, title="EMA 200", linewidth=2)






















