Abyss Protocol OneAbyss Protocol One — Momentum Exhaustion Trading System
Overview
Abyss Protocol One is a momentum exhaustion indicator designed to identify high-probability reversal points by detecting when price momentum has reached extreme levels. It combines Chande Momentum Oscillator (CMO) threshold signals with dynamic volatility-adjusted bands and multiple protective filters to generate buy and sell signals.
Core Concept
The indicator operates on the principle that extreme momentum readings (CMO reaching ±80) often precede mean reversion. Rather than chasing trends, Abyss Protocol waits for momentum exhaustion before signaling entries and exits.
Key Components
1. Dynamic Bands (Money Line ± ATR)
Center line uses linear regression (Money Line) for smooth trend representation
Bands expand and contract based on Bollinger Band Width Percentile (BBWP)
Low volatility (BBWP < 30): Tighter bands using lower multiplier
High volatility (BBWP > 70): Wider bands using higher multiplier
Bands visually adapt to current market conditions
2. CMO Exhaustion Signals
BUY Signal: CMO drops below -80 (oversold/momentum exhaustion to downside)
SELL Signal: CMO rises above +80 (overbought/momentum exhaustion to upside)
Thresholds are configurable for different assets and timeframes
3. ADX Filter
Signals only fire when ADX exceeds minimum threshold (default: 22)
Ensures there's enough directional movement to trade
Prevents signals during choppy, directionless markets
4. Band Contraction Filter
Calculates band width percentile rank over configurable lookback
When bands are contracted (below 18th percentile), ALL signals are blocked
Prevents trading during low-volatility squeeze periods where breakout direction is uncertain
5. Consecutive Buy Limit
Maximum of 3 consecutive buys allowed before a sell is required
Prevents overexposure during extended downtrends
Counter resets when a sell signal fires
6. Underwater Protection
Tracks rolling average of recent entry prices (last 10 entries within 7 days)
Blocks sell signals if current price is below average entry price
Prevents locking in losses during drawdowns
7. Signal Cooldown
Minimum 5-bar cooldown between signals
Prevents rapid-fire signals during volatile swings
8. Extreme Move Detection
Detects when price penetrates beyond bands by more than 0.6 × ATR
Extreme signals can bypass normal cooldown period
Fire intra-bar for faster response to capitulation/blow-off moves
Still respects max consecutive buys and underwater protection
Visual Features
Trend State Detection
The indicator classifies market conditions into six states based on EMA stack, price position, and directional indicators:
STRONG UP: Full bullish alignment (EMA stack + price above trend + bullish DI + ADX > threshold)
UP: Moderate bullish conditions
NEUTRAL: No clear directional bias
DOWN: Moderate bearish conditions
STRONG DOWN: Full bearish alignment
CONTRACTED: Bands squeezed, volatility low
ADX Trend Bar
Colored dots at chart bottom provide instant trend state visibility:
Lime = Strong Uptrend
Blue = Uptrend
Orange = Neutral
Red = Downtrend
Maroon = Strong Downtrend
White = Contracted
Volume Spike Highlighting
Purple background highlights candles where volume exceeds 2x the 20-bar average, helping identify institutional activity or significant market events.
Signal Labels
Buy labels show consecutive buy count (e.g., "BUY 2/3"), price, and CMO value
Sell labels show consecutive sell count, price, and CMO value
Extreme signals display in distinct colors (cyan for buys, fuchsia for sells)
Signal candles turn bright blue for easy identification
Info Panel
Real-time dashboard displaying:
Current trend state
CMO value with threshold status
CMO thresholds (buy/sell levels)
ADX with directional indicator (▲/▼) and signal eligibility
BBWP percentage
Buy/Sell counters
Average entry price (with underwater shield indicator 🛡 when protected)
Price position relative to Money Line
Band width percentile rank
Extreme move status
Signals status (OPEN/BLOCKED)
Recommended Use
Timeframe: 5-15 minute charts (parameters tuned for this range)
Best suited for: Assets with regular oscillations between overbought/oversold extremes
Trading style: Mean reversion, momentum exhaustion, scaled entries
Parameters Summary
Money Line Length: 12 — Smoothing for center line
ATR Length: 10 — Volatility measurement
Band Multiplier (Low/High Vol): 1.5 / 2.5 — Dynamic band width
CMO Length: 9 — Momentum calculation period
CMO Buy/Sell Threshold: -80 / +80 — Signal trigger levels
ADX Min for Signals: 22 — Minimum trend strength
Signal Cooldown: 5 bars — Minimum bars between signals
Max Consecutive Buys: 3 — Position scaling limit
Band Contraction Threshold: 18th %ile — Low volatility filter
Band Contraction Lookback: 188 bars — Percentile calculation period
Extreme Penetration: 0.6 × ATR — Threshold for extreme signals
تحليل الاتجاه
FTL Context Teaser - PublicFTL Context (Teaser) – Public
FTL Context (Teaser) is a visual market context layer designed to highlight periods of increased market risk and structural tension.
This script does NOT provide trading signals and is NOT intended for standalone trading decisions.
It serves as a contextual overlay only, helping traders visually identify when market conditions shift away from equilibrium.
The teaser version is intentionally limited and does not expose the underlying logic or decision framework.
Full functionality, advanced filters, and integrated decision logic are available in the invite-only FTL Context Layer (PRO).
📩 Contact / PRO access:
fairtradinglab@gmail.com
Educational & informational use only.
Broad Patch Levels + EMA (Daily/Weekly) with Directional AlertsThis indicator provides dynamic support and resistance levels along with trend guidance using EMA lines for daily or weekly timeframes. It is fully customizable, offering toggles for individual levels, trend lines, and alert notifications.
Key highlights:
Clearly visualize key market levels for potential trade entries and exits.
Monitor trend direction with EMA-based guidance.
Receive alerts when price interacts with important levels or trend zones.
Configurable visibility and alert options for a clean and personalized chart layout.
Ideal for professional traders looking for a structured, easy-to-read market perspective without exposing proprietary methods or calculations.
BIGG CHIEFF RWB MASTER v2.0 (Indicator) [v1.0]Here is a **clean, professional TradingView indicator description** you can paste directly into the script description. It explains the *logic and philosophy* without exposing proprietary specifics, while still sounding robust and credible.
---
## 📊 Indicator Overview
This indicator is a **rule-based EMA crossover strategy built on price action, opening range structure, directional bias, and momentum confirmation**.
It is designed for intraday trading during the New York session and adapts to both time-based and tick-based charts.
The system focuses on **clarity, patience, and consistency**, filtering out low-quality conditions while aligning trades with higher-probability market structure.
---
## 🧭 Core Concepts
### Opening Range Structure
* The strategy uses the **first 15 minutes of the New York session** to define an Opening Range.
* This range establishes **key intraday structure**, including:
* High
* Low
* Midpoint
* The Opening Range remains visible for the entire session and resets each day.
* Trades are framed around **breaks, retests, and rejections** of this structure.
---
## 📈 Trend, Bias & Momentum
### Directional Bias
Bias is determined by:
* **EMA stacking order**
* **Price location relative to the Opening Range**
* Optional **higher-timeframe trend alignment**
Once bias is confirmed:
* Trades are only taken **in the direction of that bias**
* Opposing trades are locked out until structure meaningfully changes
This prevents overtrading and reduces whipsaws in choppy conditions.
---
### Higher-Timeframe Alignment (Optional)
A higher-timeframe trend filter can be enabled to:
* Keep trades aligned with the broader market direction
* Improve win rate during trending sessions
* Reduce countertrend entries
---
## ⚡ Volatility & Time Filters
To avoid low-quality trades, the system includes:
* **Volatility filtering** to prevent entries during compressed or dead markets
* **Session time windows** to focus on the most liquid trading hours
* Optional **no-trade time blocks** for news or known high-risk periods
---
## 💧 Liquidity Awareness
The indicator accounts for **key liquidity zones**, such as:
* Prior session highs and lows
* Overnight and premarket extremes
Trades are filtered to ensure there is **sufficient room for reward** before running into nearby liquidity, helping avoid premature exits.
---
## ✅ Entry Logic (Primary Mode)
Trades are based on **structure first, confirmation second**:
* Breakouts must be confirmed by **candle closes**, not wicks
* Entries occur on **retracements and rejection candles**, not chase candles
* Priority is given to cleaner retests closer to structure
* Optional controls allow limiting trades to **first-touch setups only**
This encourages patience and avoids emotional entries.
---
## 🛑 Risk Management & Trade Management
The system is built around **R-multiple consistency**, not fixed targets.
* Stops are volatility-based
* Multiple profit targets can be enabled
* Optional partial profits and trailing stop logic are included
* Trailing behavior can follow momentum or structure once price moves favorably
Everything is designed to **protect capital first and scale winners second**.
---
## 🧠 Philosophy
This indicator is not designed to predict the market.
It is designed to **react intelligently** to what price is already confirming.
It prioritizes:
* Structure over indicators
* Bias over impulse
* Confirmation over hope
* Risk management over win rate
Best results come from disciplined execution, patience, and respecting the filters.
HMM Trend Exhaust Detector (Partial TP Areas)🔹 HMM Trend Exhaust Detector (Partial TP Areas)
HMM Trend Exhaust Detector is a professional risk-management and partial profit awareness tool, designed to highlight moments when price becomes over-extended within a strong trend.
This indicator is not an entry system and not a reversal predictor.
It is built to help traders protect profits, manage open positions, and avoid chasing price when the market is already stretched.
🧠 How it works (Simple Explanation)
When price moves aggressively away from its trend structure:
The candle color changes in real time, warning that price is entering a potential exhaustion zone.
A dotted guide level appears at the exact threshold price, showing where profit pressure begins.
After the candle closes, Partial TP Areas are marked on the chart to provide structure and context.
This two-step approach ensures:
Live awareness during the candle
Confirmed visual zones after close
🎯 What this indicator is best used for
✔ Partial profit booking
✔ Risk reduction during strong trends
✔ Avoiding late entries into extended moves
✔ Trade management & discipline
⚙️ Sensitivity Modes
The indicator includes a single Sensitivity setting to adapt to different trading styles:
Relaxed → Earlier warnings, more frequent partial TP zones
Strict → Balanced, institutional default
Very Strict → Only major, extreme exhaustion moves
(All internal calculations are handled automatically.)
📌 Important Notes
This indicator does not generate buy or sell signals.
Rectangle height is just based on candle heights at that time (Not strength based)
Partial TP Areas are confirmed after candle close by design.
Live candle highlighting and guide levels provide real-time awareness, not prediction.
Best used alongside your existing strategy or entries.
🧩 Recommended Use
Scalping / Fast markets → Relaxed
Intraday trading → Strict
Swing / News / Higher timeframes → Very Strict
🚀 About HMM
House of Market Minds -(HMM) indicators focus on clarity, discipline, and decision support — not hype or unrealistic promises.
This is the first public release in the HMM series, built with a long-term professional vision.
Reversal Buy and Sell SignalsThis indicator is fast and minimalistic reversal-detection indicator designed to capture high-probability turning points in the market. It combines engulfing candlestick patterns, a strong candle body filter, and RSI momentum analysis to generate precise BUY and SELL signals with minimal noise.
Index & Stock Options Reference Tool-(ISORT) [Arjo]The Index & Stock Options Reference Tool-(ISORT) is an indicator that helps users observe price trend direction together with commonly used option strike levels for selected indices and stocks in Indian market .
The indicator integrates a smoothed trend framework with structured option-related data to help users observe how price direction aligns with commonly referenced option strike levels .
It does not generate trading signals, does not provide buy or sell recommendations, and does not evaluate profitability .
Key Features
1. Trend Context Engine
Uses a Super-Smoother filter combined with EMA smoothing
Highlights directional context through color-based trend states
Designed to reduce short-term noise
2. Dynamic ATM & Strike Reference
Automatically computes ATM strike and offset strike levels to select OTM strike
Strike intervals adapt to the selected index or stock
Supports both NSE and BSE instruments, including SENSEX
3. Expiry Awareness
User-selectable expiry date inputs
Displays a visual warning if the selected expiry has already passed
Helps avoid referencing outdated option contracts
4. Option Price Reference Panel
Displays last observed CALL and PUT prices (when available)
Allows optional manual entry values for analytical comparison
All price values are shown strictly as references
5. Informational Table Overlay
Customizable on-chart table layout
Displays strike, timestamp, price reference, and arithmetic P&L values
Table values are informational only, not predictive or advisory
How to Use
1. Select the Underlying Instrument
Choose whether to reference the current chart symbol or a custom index/stock from the input settings
Supported instruments include major NSE indices, selected stocks, and SENSEX
2. Configure Expiry Parameters
Enter the option expiry date using the Day, Month, and Year inputs
If an expired date is selected, the indicator will display a visual warning
This helps ensure option references remain time-relevant
3. Observe Trend Context
The smoothed trend line provides directional context only
Color changes reflect shifts in price structure, not trade instructions
This trend is intended for contextual analysis, not timing entries
4. Review Strike References
The indicator automatically calculates ATM and offset strike levels
Strike spacing adjusts based on the selected index or stock
These values serve as reference levels commonly observed in options markets
5. Interpret the Information Table
The on-chart table displays:
Strike level
Timestamp of the most recent context change
Last observed option price (when available)
Arithmetic price difference values
All values are informational references only and do not represent performance or outcomes
6. Optional Manual Inputs
Manual price fields can be used to compare external reference values
These inputs do not trigger signals or automated calculations
Important Notes
This indicator is not a trading system
It does not generate buy or sell signals
It does not provide financial or trading advice
It is intended for learning, observation, and market study
Disclaimer
This script is provided for educational and analytical purposes only. It does not constitute investment advice, trading advice. The author assumes no responsibility for decisions made using this indicator.
Happy Trading (Arjo)
Pro Harmonic Patterns Hunter [abo0o]Advanced harmonic pattern recognition system designed for professional traders.
Automatically detects 🦈 Shark, 🦋 Butterfly, and 🦀 Crab harmonic patterns using optimized Fibonacci ratio analysis. Built with precision algorithms to identify high-probability reversal zones across any market condition.
📊 Key Features:
Real-time pattern completion detection
Multi-timeframe compatibility (all timeframes supported)
Three-tier take profit system based on Fibonacci extensions
Fixed parameters to ensure consistent performance
Clean visual presentation with directional color coding
Strict harmonic ratio validation
📈 Applications:
Works reliably across Forex, Stocks, Crypto, Indices, and Commodities. Suitable for day trading, swing trading, and position trading strategies.
🔧 Technical Details:
Automated ZigZag pivot detection
Pattern similarity filtering for quality control
Non-repainting signal generation
🌹Special thanks to TradingView for providing the platform and tools that make innovations like this possible.
Navigator Volume Profil FixedLong Term Investing
Day Trading
Navigator Volume Profile Fixed (Fixed + Current Session)
**Navigator Volume Profile Fixed** plots a horizontal volume profile on your chart using a **fixed timeframe anchor** (ex: Daily) and optionally overlays a **live “current” profile** for the active session/period.
It’s designed to help you quickly see where volume is building (acceptance) vs. thinning out (rejection), and to identify the key reference levels traders watch most: **PoC, VAH, and VAL**.
### What it plots
**Fixed Volume Profile (anchored to a timeframe)**
Builds a completed profile each time the selected anchor timeframe rolls over (ex: each new day on a Daily anchor).
**Current Volume Profile (live)**
Continuously updates the developing profile for the current anchor period (optional toggle).
**Point of Control (PoC)**
Highlights the single price level with the highest traded volume.
**Value Area (VAH / VAL)**
Plots the Value Area boundaries using a configurable percentage (default **68%**), and visually differentiates the value area from the rest of the profile.
Key settings
* **Enable Fixed VP**: turn the fixed/anchored profile on/off
* **Timeframe Anchor**: choose the profile reset period (ex: 1D)
* **Show Current Fixed VP**: show/hide the developing (current) profile
* **Number of Rows**: controls profile resolution (price “bins”)
* **Profile Width (%)** and **Bar Thickness**: visual scaling controls
* **PoC + Value Area toggles**: show/hide PoC and VA boundaries
* **Extend PoC Line**: optionally extend the PoC into the future
How to use it (practical)
* Treat **PoC** as the most accepted price for the anchored period.
* Use **VAH/VAL** as reference boundaries for balance vs. imbalance.
* Compare **Fixed** vs **Current** profiles to see whether volume is migrating higher/lower during the session and where price is building acceptance.
**Note:** This script draws using TradingView line objects and is optimized to stay within platform limits while maintaining a clean profile display.
Round Strike Price, Levels Options Series➤ Strike Price Range Mode:
➤ Exact Strike Price Mode:
⭐ Overview and How It Works
Round Strike Price or Levels is a precision-focused visual tool designed for options and index traders.
It dynamically plots round strike levels around the current price and presents them either as:
⠀ — Exact strike prices, or
⠀ — Strike price ranges, where each zone represents the midpoint between two adjacent strikes.
The indicator continuously recalculates the base strike using the current price and aligns all surrounding levels using a fixed step size.
All lines and labels are updated only on the last bar for optimal performance and stability.
This makes StrikePrice ideal for:
🔹 Identifying key option strikes.
🔹 Visualizing price acceptance zones.
🔹 Understanding strike-to-strike movement during intraday trading.
⭐ Key Features and Functionality
Strike Price Range:
⠀ — Treats each pair of strike lines as a price zone.
⠀ — Labels are plotted at the midpoint between two lines.
⠀ — Last label is intentionally hidden (no upper range exists)
Exact Strike Price:
⠀ — Labels are plotted directly on each strike line.
⠀ — Useful for precise strike-based analysis.
Dynamic Base Calculation:
⠀ — Automatically snaps price to the nearest round strike.
⠀ — Re-centers the entire grid as price moves.
⠀ — No manual adjustment required.
Efficient Object Management:
⠀ — Uses persistent arrays for lines and labels.
⠀ — Objects are reused instead of recreated.
⠀ — Prevents flickering and avoids TradingView object limits.
🎨 Visualizations and User Experience
Clean horizontal strike grid with configurable:
⠀ — Line width, Line color, Line style (Solid / Dashed / Dotted), Extension direction (Left / Right / Both / None).
Labels are:
⠀ — Positioned to the right of price, Size-adjustable, Fully customizable in text color and background color.
Designed to stay visually clear even on:
⠀ — Fast-moving intraday charts, Options-focused layouts, Multi-indicator setups.
Tip: Increase Right Bars Margin in chart settings to give labels proper spacing.
⭐ Settings and Customization
🔹 Strike Settings:
⠀ — Step (points): Distance between adjacent strike levels (e.g., 50, 100)
⠀ — Levels per side: Number of strike levels plotted above and below the base.
⠀ — Strike Mode: Strike Price Range, Exact Strike Price.
🔹 Line Settings:
⠀ — Line width, Line color, Line style (Solid / Dashed / Dotted), Line extension direction.
🔹 Label Settings:
⠀ — Show / hide labels, Label distance (bars to the right), Label size, Label text color, Label background color.
All label properties are updated dynamically, allowing real-time UI tuning without reloading the script.
⭐ Uniqueness of the Concept:
Unlike generic round-number indicators, StrikePrice:
⠀ — Understands option-style strike structure.
⠀ — Separates range-based thinking from exact price levels.
⠀ — Uses midpoint logic to visualize strike-to-strike movement.
⠀ — Maintains strict performance discipline by updating only when necessary.
This makes it especially useful for:
⠀ • NIFTY / BANKNIFTY options.
⠀ • Index and futures traders.
⠀ • Intraday strike rotation analysis.
⠀ • Premium decay and range-bound setups.
🚀 Conclusion:
StrikePrice is a focused, professional-grade indicator for traders who think in strikes, ranges, and levels rather than arbitrary prices.
It offers:
⠀ • Clear structure
⠀ • Accurate strike alignment
⠀ • Clean visuals
⠀ • Zero repainting logic
FTL Context - Public TeaserFTL Context (Teaser) – Public
FTL Context (Teaser) is a visual market context layer designed to highlight periods of increased market risk and structural tension.
This script does NOT provide trading signals and is NOT intended for standalone trading decisions.
It serves as a contextual overlay only, helping traders visually identify when market conditions shift away from equilibrium.
The teaser version is intentionally limited and does not expose the underlying logic or decision framework.
Full functionality, advanced filters, and integrated decision logic are available in the invite-only FTL Context Layer (PRO).
Educational & informational use only.
Razzere Cloned! EzAlgo V.8.1showBuySell = input(true, "Show Buy & Sell", group="BUY & SELL SIGNALS")
hassasiyet = input.float(3, "Hassasiyet (1-6)", 0.1, 99999, group="BUY & SELL SIGNALS")
percentStop = input.float(1, "Stop Loss % (0 to Disable)", 0, group="BUY & SELL SIGNALS")
offsetSignal = input.float(5, "Signals Offset", 0, group="BUY & SELL SIGNALS")
showRibbon = input(true, "Show Trend Ribbon", group="TREND RIBBON")
smooth1 = input.int(5, "Smoothing 1", 1, group="TREND RIBBON")
smooth2 = input.int(8, "Smoothing 2", 1, group="TREND RIBBON")
showreversal = input(true, "Show Reversals", group="REVERSAL SIGNALS")
showPdHlc = input(false, "Show P.D H/L/C", group="PREVIOUS DAY HIGH LOW CLOSE")
lineColor = input.color(color.yellow, "Line Colors", group="PREVIOUS DAY HIGH LOW CLOSE")
lineWidth = input.int(1, "Width Lines", group="PREVIOUS DAY HIGH LOW CLOSE")
lineStyle = input.string("Solid", "Line Style", )
labelSize = input.string("normal", "Label Text Size", )
labelColor = input.color(color.yellow, "Label Text Colors")
showEmas = input(false, "Show EMAs", group="EMA")
srcEma1 = input(close, "Source EMA 1")
lenEma1 = input.int(7, "Length EMA 1", 1)
srcEma2 = input(close, "Source EMA 2")
lenEma2 = input.int(21, "Length EMA 2", 1)
srcEma3 = input(close, "Source EMA 3")
lenEma3 = input.int(144, "Length EMA 3", 1)
showSwing = input(false, "Show Swing Points", group="SWING POINTS")
prdSwing = input.int(10, "Swing Point Period", 2, group="SWING POINTS")
colorPos = input(color.new(color.green, 50), "Positive Swing Color")
colorNeg = input(color.new(color.red, 50), "Negative Swing Color")
showDashboard = input(true, "Show Dashboard", group="TREND DASHBOARD")
locationDashboard = input.string("Middle Right", "Table Location", , group="TREND DASHBOARD")
tableTextColor = input(color.white, "Table Text Color", group="TREND DASHBOARD")
tableBgColor = input(#2A2A2A, "Table Background Color", group="TREND DASHBOARD")
sizeDashboard = input.string("Normal", "Table Size", , group="TREND DASHBOARD")
showRevBands = input.bool(true, "Show Reversal Bands", group="REVERSAL BANDS")
lenRevBands = input.int(30, "Length", group="REVERSAL BANDS")
// Fonksiyonlar
smoothrng(x, t, m) =>
wper = t * 2 - 1
avrng = ta.ema(math.abs(x - x ), t)
smoothrng = ta.ema(avrng, wper) * m
rngfilt(x, r) =>
rngfilt = x
rngfilt := x > nz(rngfilt ) ? x - r < nz(rngfilt ) ? nz(rngfilt ) : x - r : x + r > nz(rngfilt ) ? nz(rngfilt ) : x + r
percWidth(len, perc) => (ta.highest(len) - ta.lowest(len)) * perc / 100
securityNoRep(sym, res, src) => request.security(sym, res, src, barmerge.gaps_off, barmerge.lookahead_on)
swingPoints(prd) =>
pivHi = ta.pivothigh(prd, prd)
pivLo = ta.pivotlow (prd, prd)
last_pivHi = ta.valuewhen(pivHi, pivHi, 1)
last_pivLo = ta.valuewhen(pivLo, pivLo, 1)
hh = pivHi and pivHi > last_pivHi ? pivHi : na
lh = pivHi and pivHi < last_pivHi ? pivHi : na
hl = pivLo and pivLo > last_pivLo ? pivLo : na
ll = pivLo and pivLo < last_pivLo ? pivLo : na
f_chartTfInMinutes() =>
float _resInMinutes = timeframe.multiplier * (
timeframe.isseconds ? 1 :
timeframe.isminutes ? 1. :
timeframe.isdaily ? 60. * 24 :
timeframe.isweekly ? 60. * 24 * 7 :
timeframe.ismonthly ? 60. * 24 * 30.4375 : na)
f_kc(src, len, hassasiyet) =>
basis = ta.sma(src, len)
span = ta.atr(len)
wavetrend(src, chlLen, avgLen) =>
esa = ta.ema(src, chlLen)
d = ta.ema(math.abs(src - esa), chlLen)
ci = (src - esa) / (0.015 * d)
wt1 = ta.ema(ci, avgLen)
wt2 = ta.sma(wt1, 3)
f_top_fractal(src) => src < src and src < src and src > src and src > src
f_bot_fractal(src) => src > src and src > src and src < src and src < src
f_fractalize (src) => f_top_fractal(src) ? 1 : f_bot_fractal(src) ? -1 : 0
f_findDivs(src, topLimit, botLimit) =>
fractalTop = f_fractalize(src) > 0 and src >= topLimit ? src : na
fractalBot = f_fractalize(src) < 0 and src <= botLimit ? src : na
highPrev = ta.valuewhen(fractalTop, src , 0)
highPrice = ta.valuewhen(fractalTop, high , 0)
lowPrev = ta.valuewhen(fractalBot, src , 0)
lowPrice = ta.valuewhen(fractalBot, low , 0)
bearSignal = fractalTop and high > highPrice and src < highPrev
bullSignal = fractalBot and low < lowPrice and src > lowPrev
// Bileşen...
source = close
smrng1 = smoothrng(source, 27, 1.5)
smrng2 = smoothrng(source, 55, hassasiyet)
smrng = (smrng1 + smrng2) / 2
filt = rngfilt(source, smrng)
up = 0.0, up := filt > filt ? nz(up ) + 1 : filt < filt ? 0 : nz(up )
dn = 0.0, dn := filt < filt ? nz(dn ) + 1 : filt > filt ? 0 : nz(dn )
bullCond = bool(na), bullCond := source > filt and source > source and up > 0 or source > filt and source < source and up > 0
bearCond = bool(na), bearCond := source < filt and source < source and dn > 0 or source < filt and source > source and dn > 0
lastCond = 0, lastCond := bullCond ? 1 : bearCond ? -1 : lastCond
bull = bullCond and lastCond == -1
bear = bearCond and lastCond == 1
countBull = ta.barssince(bull)
countBear = ta.barssince(bear)
trigger = nz(countBull, bar_index) < nz(countBear, bar_index) ? 1 : 0
ribbon1 = ta.sma(close, smooth1)
ribbon2 = ta.sma(close, smooth2)
rsi = ta.rsi(close, 21)
rsiOb = rsi > 70 and rsi > ta.ema(rsi, 10)
rsiOs = rsi < 30 and rsi < ta.ema(rsi, 10)
dHigh = securityNoRep(syminfo.tickerid, "D", high )
dLow = securityNoRep(syminfo.tickerid, "D", low )
dClose = securityNoRep(syminfo.tickerid, "D", close )
ema1 = ta.ema(srcEma1, lenEma1)
ema2 = ta.ema(srcEma2, lenEma2)
ema3 = ta.ema(srcEma3, lenEma3)
= swingPoints(prdSwing)
ema = ta.ema(close, 144)
emaBull = close > ema
equal_tf(res) => str.tonumber(res) == f_chartTfInMinutes() and not timeframe.isseconds
higher_tf(res) => str.tonumber(res) > f_chartTfInMinutes() or timeframe.isseconds
too_small_tf(res) => (timeframe.isweekly and res=="1") or (timeframe.ismonthly and str.tonumber(res) < 10)
securityNoRep1(sym, res, src) =>
bool bull_ = na
bull_ := equal_tf(res) ? src : bull_
bull_ := higher_tf(res) ? request.security(sym, res, src, barmerge.gaps_off, barmerge.lookahead_on) : bull_
bull_array = request.security_lower_tf(syminfo.tickerid, higher_tf(res) ? str.tostring(f_chartTfInMinutes()) + (timeframe.isseconds ? "S" : "") : too_small_tf(res) ? (timeframe.isweekly ? "3" : "10") : res, src)
if array.size(bull_array) > 1 and not equal_tf(res) and not higher_tf(res)
bull_ := array.pop(bull_array)
array.clear(bull_array)
bull_
TF1Bull = securityNoRep1(syminfo.tickerid, "1" , emaBull)
TF3Bull = securityNoRep1(syminfo.tickerid, "3" , emaBull)
TF5Bull = securityNoRep1(syminfo.tickerid, "5" , emaBull)
TF15Bull = securityNoRep1(syminfo.tickerid, "15" , emaBull)
TF30Bull = securityNoRep1(syminfo.tickerid, "30" , emaBull)
TF60Bull = securityNoRep1(syminfo.tickerid, "60" , emaBull)
TF120Bull = securityNoRep1(syminfo.tickerid, "120" , emaBull)
TF240Bull = securityNoRep1(syminfo.tickerid, "240" , emaBull)
TF480Bull = securityNoRep1(syminfo.tickerid, "480" , emaBull)
TFDBull = securityNoRep1(syminfo.tickerid, "1440", emaBull)
= f_kc(close, lenRevBands, 3)
= f_kc(close, lenRevBands, 4)
= f_kc(close, lenRevBands, 5)
= f_kc(close, lenRevBands, 6)
= wavetrend(hlc3, 9, 12)
= f_findDivs(wt2, 15, -40)
= f_findDivs(wt2, 45, -65)
wtDivBull = wtDivBull1 or wtDivBull2
wtDivBear = wtDivBear1 or wtDivBear2
// Renkler
cyan = #00DBFF, cyan30 = color.new(cyan, 70)
pink = #E91E63, pink30 = color.new(pink, 70)
red = #FF5252, red30 = color.new(red , 70)
// Plotlar
off = percWidth(300, offsetSignal)
plotshape(showBuySell and bull ? low - off : na, "Buy Label" , shape.labelup , location.absolute, cyan, 0, "Buy" , color.white, size=size.normal)
plotshape(showBuySell and bear ? high + off : na, "Sell Label", shape.labeldown, location.absolute, pink, 0, "Sell", color.white, size=size.normal)
plotshape(ta.crossover(wt1, wt2) and wt2 <= -53, "Mild Buy" , shape.xcross, location.belowbar, cyan, size=size.tiny)
plotshape(ta.crossunder(wt1, wt2) and wt2 >= 53, "Mild Sell", shape.xcross, location.abovebar, pink, size=size.tiny)
plotshape(wtDivBull, "Divergence Buy ", shape.triangleup , location.belowbar, cyan, size=size.tiny)
plotshape(wtDivBear, "Divergence Sell", shape.triangledown, location.abovebar, pink, size=size.tiny)
barcolor(up > dn ? cyan : pink)
plotshape(showreversal and rsiOs, "Reversal Buy" , shape.diamond, location.belowbar, cyan30, size=size.tiny)
plotshape(showreversal and rsiOb, "Reversal Sell", shape.diamond, location.abovebar, pink30, size=size.tiny)
lStyle = lineStyle == "Solid" ? line.style_solid : lineStyle == "Dotted" ? line.style_dotted : line.style_dashed
lSize = labelSize == "small" ? size.small : labelSize == "normal" ? size.normal : size.large
dHighLine = showPdHlc ? line.new(bar_index, dHigh, bar_index + 1, dHigh , xloc.bar_index, extend.both, lineColor, lStyle, lineWidth) : na, line.delete(dHighLine )
dLowLine = showPdHlc ? line.new(bar_index, dLow , bar_index + 1, dLow , xloc.bar_index, extend.both, lineColor, lStyle, lineWidth) : na, line.delete(dLowLine )
dCloseLine = showPdHlc ? line.new(bar_index, dClose, bar_index + 1, dClose, xloc.bar_index, extend.both, lineColor, lStyle, lineWidth) : na, line.delete(dCloseLine )
dHighLabel = showPdHlc ? label.new(bar_index + 100, dHigh , "P.D.H", xloc.bar_index, yloc.price, #000000, label.style_none, labelColor, lSize) : na, label.delete(dHighLabel )
dLowLabel = showPdHlc ? label.new(bar_index + 100, dLow , "P.D.L", xloc.bar_index, yloc.price, #000000, label.style_none, labelColor, lSize) : na, label.delete(dLowLabel )
dCloseLabel = showPdHlc ? label.new(bar_index + 100, dClose, "P.D.C", xloc.bar_index, yloc.price, #000000, label.style_none, labelColor, lSize) : na, label.delete(dCloseLabel )
plot(showEmas ? ema1 : na, "EMA 1", color.green , 2)
plot(showEmas ? ema2 : na, "EMA 2", color.purple, 2)
plot(showEmas ? ema3 : na, "EMA 3", color.yellow, 2)
plotshape(showSwing ? hh : na, "", shape.triangledown, location.abovebar, color.new(color.green, 50), -prdSwing, "HH", colorPos, false)
plotshape(showSwing ? hl : na, "", shape.triangleup , location.belowbar, color.new(color.green, 50), -prdSwing, "HL", colorPos, false)
plotshape(showSwing ? lh : na, "", shape.triangledown, location.abovebar, color.new(color.red , 50), -prdSwing, "LH", colorNeg, false)
plotshape(showSwing ? ll : na, "", shape.triangleup , location.belowbar, color.new(color.red , 50), -prdSwing, "LL", colorNeg, false)
srcStop = close
atrBand = srcStop * (percentStop / 100)
atrStop = trigger ? srcStop - atrBand : srcStop + atrBand
lastTrade(src) => ta.valuewhen(bull or bear, src, 0)
entry_y = lastTrade(srcStop)
stop_y = lastTrade(atrStop)
tp1_y = (entry_y - lastTrade(atrStop)) * 1 + entry_y
tp2_y = (entry_y - lastTrade(atrStop)) * 2 + entry_y
tp3_y = (entry_y - lastTrade(atrStop)) * 3 + entry_y
labelTpSl(y, txt, color) =>
label labelTpSl = percentStop != 0 ? label.new(bar_index + 1, y, txt, xloc.bar_index, yloc.price, color, label.style_label_left, color.white, size.normal) : na
label.delete(labelTpSl )
labelTpSl(entry_y, "Entry: " + str.tostring(math.round_to_mintick(entry_y)), color.gray)
labelTpSl(stop_y , "Stop Loss: " + str.tostring(math.round_to_mintick(stop_y)), color.red)
labelTpSl(tp1_y, "Take Profit 1: " + str.tostring(math.round_to_mintick(tp1_y)), color.green)
labelTpSl(tp2_y, "Take Profit 2: " + str.tostring(math.round_to_mintick(tp2_y)), color.green)
labelTpSl(tp3_y, "Take Profit 3: " + str.tostring(math.round_to_mintick(tp3_y)), color.green)
lineTpSl(y, color) =>
line lineTpSl = percentStop != 0 ? line.new(bar_index - (trigger ? countBull : countBear) + 4, y, bar_index + 1, y, xloc.bar_index, extend.none, color, line.style_solid) : na
line.delete(lineTpSl )
lineTpSl(entry_y, color.gray)
lineTpSl(stop_y, color.red)
lineTpSl(tp1_y, color.green)
lineTpSl(tp2_y, color.green)
lineTpSl(tp3_y, color.green)
var dashboard_loc = locationDashboard == "Top Right" ? position.top_right : locationDashboard == "Middle Right" ? position.middle_right : locationDashboard == "Bottom Right" ? position.bottom_right : locationDashboard == "Top Center" ? position.top_center : locationDashboard == "Middle Center" ? position.middle_center : locationDashboard == "Bottom Center" ? position.bottom_center : locationDashboard == "Top Left" ? position.top_left : locationDashboard == "Middle Left" ? position.middle_left : position.bottom_left
var dashboard_size = sizeDashboard == "Large" ? size.large : sizeDashboard == "Normal" ? size.normal : sizeDashboard == "Small" ? size.small : size.tiny
var dashboard = showDashboard ? table.new(dashboard_loc, 2, 15, tableBgColor, #000000, 2, tableBgColor, 1) : na
dashboard_cell(column, row, txt, signal=false) => table.cell(dashboard, column, row, txt, 0, 0, signal ? #000000 : tableTextColor, text_size=dashboard_size)
dashboard_cell_bg(column, row, col) => table.cell_set_bgcolor(dashboard, column, row, col)
if barstate.islast and showDashboard
dashboard_cell(0, 0 , "EzAlgo")
dashboard_cell(0, 1 , "Current Position")
dashboard_cell(0, 2 , "Current Trend")
dashboard_cell(0, 3 , "Volume")
dashboard_cell(0, 4 , "Timeframe")
dashboard_cell(0, 5 , "1 min:")
dashboard_cell(0, 6 , "3 min:")
dashboard_cell(0, 7 , "5 min:")
dashboard_cell(0, 8 , "15 min:")
dashboard_cell(0, 9 , "30 min:")
dashboard_cell(0, 10, "1 H:")
dashboard_cell(0, 11, "2 H:")
dashboard_cell(0, 12, "4 H:")
dashboard_cell(0, 13, "8 H:")
dashboard_cell(0, 14, "Daily:")
dashboard_cell(1, 0 , "V.8.1")
dashboard_cell(1, 1 , trigger ? "Buy" : "Sell", true), dashboard_cell_bg(1, 1, trigger ? color.green : color.red)
dashboard_cell(1, 2 , emaBull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 2, emaBull ? color.green : color.red)
dashboard_cell(1, 3 , str.tostring(volume))
dashboard_cell(1, 4 , "Trends")
dashboard_cell(1, 5 , TF1Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 5 , TF1Bull ? color.green : color.red)
dashboard_cell(1, 6 , TF3Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 6 , TF3Bull ? color.green : color.red)
dashboard_cell(1, 7 , TF5Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 7 , TF5Bull ? color.green : color.red)
dashboard_cell(1, 8 , TF15Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 8 , TF15Bull ? color.green : color.red)
dashboard_cell(1, 9 , TF30Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 9 , TF30Bull ? color.green : color.red)
dashboard_cell(1, 10, TF60Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 10, TF60Bull ? color.green : color.red)
dashboard_cell(1, 11, TF120Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 11, TF120Bull ? color.green : color.red)
dashboard_cell(1, 12, TF240Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 12, TF240Bull ? color.green : color.red)
dashboard_cell(1, 13, TF480Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 13, TF480Bull ? color.green : color.red)
dashboard_cell(1, 14, TFDBull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 14, TFDBull ? color.green : color.red)
plot(showRevBands ? upperKC1 : na, "Rev.Zone Upper 1", red30)
plot(showRevBands ? upperKC2 : na, "Rev.Zone Upper 2", red30)
plot(showRevBands ? upperKC3 : na, "Rev.Zone Upper 3", red30)
plot(showRevBands ? upperKC4 : na, "Rev.Zone Upper 4", red30)
plot(showRevBands ? lowerKC4 : na, "Rev.Zone Lower 4", cyan30)
plot(showRevBands ? lowerKC3 : na, "Rev.Zone Lower 3", cyan30)
plot(showRevBands ? lowerKC2 : na, "Rev.Zone Lower 2", cyan30)
plot(showRevBands ? lowerKC1 : na, "Rev.Zone Lower 1", cyan30)
fill(plot(showRibbon ? ribbon1 : na, "", na, editable=false), plot(showRibbon ? ribbon2 : na, "", na, editable=false), ribbon1 > ribbon2 ? cyan30 : pink30, "Ribbon Fill Color")
// Alarmlar
alert01 = ta.crossover(ribbon1, ribbon2)
alert02 = bull
alert03 = wtDivBull
alert04 = wtDivBear
alert05 = bull or bear
alert06 = ta.crossover(wt1, wt2) and wt2 <= -53
alert07 = ta.crossunder(wt1, wt2) and wt2 >= 53
alert08 = ta.crossunder(ribbon1, ribbon2)
alert09 = rsiOb or rsiOs
alert10 = bear
alert11 = ta.cross(ribbon1, ribbon2)
alerts(sym) =>
if alert02 or alert03 or alert04 or alert06 or alert07 or alert10
alert_text = alert02 ? "Buy Signal EzAlgo" : alert03 ? "Strong Buy Signal EzAlgo" : alert04 ? "Strong Sell Signal EzAlgo" : alert06 ? "Mild Buy Signal EzAlgo" : alert07 ? "Mild Sell Signal EzAlgo" : "Sell Signal EzAlgo"
alert(alert_text, alert.freq_once_per_bar_close)
alerts(syminfo.tickerid)
alertcondition(alert01, "Blue Trend Ribbon Alert", "Blue Trend Ribbon, TimeFrame={{interval}}")
alertcondition(alert02, "Buy Signal", "Buy Signal EzAlgo")
alertcondition(alert03, "Divergence Buy Alert", "Strong Buy Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert04, "Divergence Sell Alert", "Strong Sell Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert05, "Either Buy or Sell Signal", "EzAlgo Signal")
alertcondition(alert06, "Mild Buy Alert", "Mild Buy Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert07, "Mild Sell Alert", "Mild Sell Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert08, "Red Trend Ribbon Alert", "Red Trend Ribbon, TimeFrame={{interval}}")
alertcondition(alert09, "Reversal Signal", "Reversal Signal")
alertcondition(alert10, "Sell Signal", "Sell Signal EzAlgo")
alertcondition(alert11, "Trend Ribbon Color Change Alert", "Trend Ribbon Color Change, TimeFrame={{interval}}")
EMA Color Buy/Sell
indicator("EMA Color & Buy/Sell Signals", overlay=true, max_lines_count=500, max_labels_count=500)
EMA
emaShortLen = input.int(9, "Kısa EMA")
emaLongLen = input.int(21, "Uzun EMA")
EMA
emaShort = ta.ema(close, emaShortLen)
emaLong = ta.ema(close, emaLongLen)
EMA renkleri (trend yönüne göre)
emaShortColor = emaShort > emaShort ? color.green : color.red
emaLongColor = emaLong > emaLong ? color.green : color.red
EMA
plot(emaShort, color=emaShortColor, linewidth=3, title="EMA Short")
plot(emaLong, color=emaLongColor, linewidth=3, title="EMA Long")
buySignal = ta.crossover(emaShort, emaLong)
sellSignal = ta.crossunder(emaShort, emaLong)
plotshape(buySignal, title="Buy", location=location.belowbar, color=color.lime, style=shape.triangleup, size=size.large)
plotshape(sellSignal, title="Sell", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.large)
barcolor(close > open ? color.new(color.green, 0) : color.new(color.red, 0))
var line buyLine = na
var line sellLine = na
if buySignal
buyLine := line.new(bar_index, low, bar_index, high, color=color.lime, width=2)
if sellSignal
sellLine := line.new(bar_index, high, bar_index, low, color=color.red, width=2)
Heikin-Ashi Bar & Line with Signals//@version=6
indicator("Heikin-Ashi Bar & Line with Signals", overlay=true)
// Heikin-Ashi hesaplamaları
var float haOpen = na // İlk değer için var kullanıyoruz
haClose = (open + high + low + close) / 4
haOpen := na(haOpen) ? (open + close)/2 : (haOpen + haClose )/2
haHigh = math.max(high, haOpen, haClose)
haLow = math.min(low, haOpen, haClose)
// Renkler
haBull = haClose >= haOpen
haColor = haBull ? color.new(color.green, 0) : color.new(color.red, 0)
// HA Barları
plotcandle(haOpen, haHigh, haLow, haClose, color=haColor, wickcolor=haColor)
// HA Line
plot(haClose, title="HA Close Line", color=color.yellow, linewidth=2)
// Trend arka planı
bgcolor(haBull ? color.new(color.green, 85) : color.new(color.red, 85))
// Al/Sat sinyalleri
longSignal = haBull and haClose > haOpen and haClose < haOpen
shortSignal = not haBull and haClose < haOpen and haClose > haOpen
plotshape(longSignal, title="Al Sinyali", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(shortSignal, title="Sat Sinyali", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
ZLSMA//@version=5
indicator("T3 Al-Sat Sinyalli", overlay=true, shorttitle="T3 Signal")
// Kullanıcı ayarları
length = input.int(14, minval=1, title="Periyot")
vFactor = input.float(0.7, minval=0.0, maxval=1.0, title="Volatility Factor (0-1)")
// EMA hesaplamaları
ema1 = ta.ema(close, length)
ema2 = ta.ema(ema1, length)
ema3 = ta.ema(ema2, length)
// T3 hesaplaması
c1 = -vFactor * vFactor * vFactor
c2 = 3 * vFactor * vFactor + 3 * vFactor * vFactor * vFactor
c3 = -6 * vFactor * vFactor - 3 * vFactor - 3 * vFactor * vFactor * vFactor
c4 = 1 + 3 * vFactor + vFactor * vFactor * vFactor + 3 * vFactor * vFactor
t3 = c1 * ema3 + c2 * ema2 + c3 * ema1 + c4 * close
// T3 çizimi
plot(t3, color=color.new(color.blue, 0), linewidth=2, title="T3")
// Mum renkleri
barcolor(close > t3 ? color.new(color.green, 0) : color.new(color.red, 0))
// Al-Sat sinyalleri
buySignal = ta.crossover(close, t3)
sellSignal = ta.crossunder(close, t3)
// Okları çiz
plotshape(buySignal, title="Al", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(sellSignal, title="Sat", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
EMA Color Cross + Trend Arrows//@version=5
indicator("T3 Al-Sat Sinyalli", overlay=true, shorttitle="T3 Signal")
// Kullanıcı ayarları
length = input.int(14, minval=1, title="Periyot")
vFactor = input.float(0.7, minval=0.0, maxval=1.0, title="Volatility Factor (0-1)")
// EMA hesaplamaları
ema1 = ta.ema(close, length)
ema2 = ta.ema(ema1, length)
ema3 = ta.ema(ema2, length)
// T3 hesaplaması
c1 = -vFactor * vFactor * vFactor
c2 = 3 * vFactor * vFactor + 3 * vFactor * vFactor * vFactor
c3 = -6 * vFactor * vFactor - 3 * vFactor - 3 * vFactor * vFactor * vFactor
c4 = 1 + 3 * vFactor + vFactor * vFactor * vFactor + 3 * vFactor * vFactor
t3 = c1 * ema3 + c2 * ema2 + c3 * ema1 + c4 * close
// T3 çizimi
plot(t3, color=color.new(color.blue, 0), linewidth=2, title="T3")
// Mum renkleri
barcolor(close > t3 ? color.new(color.green, 0) : color.new(color.red, 0))
// Al-Sat sinyalleri
buySignal = ta.crossover(close, t3)
sellSignal = ta.crossunder(close, t3)
// Okları çiz
plotshape(buySignal, title="Al", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(sellSignal, title="Sat", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
T3 Al-Sat Sinyalli//@version=5
indicator("T3 Al-Sat Sinyalli", overlay=true, shorttitle="T3 Signal")
// Kullanıcı ayarları
length = input.int(14, minval=1, title="Periyot")
vFactor = input.float(0.7, minval=0.0, maxval=1.0, title="Volatility Factor (0-1)")
// EMA hesaplamaları
ema1 = ta.ema(close, length)
ema2 = ta.ema(ema1, length)
ema3 = ta.ema(ema2, length)
// T3 hesaplaması
c1 = -vFactor * vFactor * vFactor
c2 = 3 * vFactor * vFactor + 3 * vFactor * vFactor * vFactor
c3 = -6 * vFactor * vFactor - 3 * vFactor - 3 * vFactor * vFactor * vFactor
c4 = 1 + 3 * vFactor + vFactor * vFactor * vFactor + 3 * vFactor * vFactor
t3 = c1 * ema3 + c2 * ema2 + c3 * ema1 + c4 * close
// T3 çizimi
plot(t3, color=color.new(color.blue, 0), linewidth=2, title="T3")
// Mum renkleri
barcolor(close > t3 ? color.new(color.green, 0) : color.new(color.red, 0))
// Al-Sat sinyalleri
buySignal = ta.crossover(close, t3)
sellSignal = ta.crossunder(close, t3)
// Okları çiz
plotshape(buySignal, title="Al", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(sellSignal, title="Sat", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
EMA COLOR BUY SELL
indicator("Sorunsuz EMA Renk + AL/SAT", overlay=true)
length = input.int(20, "EMA Periyodu")
src = input.source(close, "Kaynak")
emaVal = ta.ema(src, length)
isUp = emaVal > emaVal
emaCol = isUp ? color.green : color.red
plot(emaVal, "EMA", color=emaCol, linewidth=2)
buy = isUp and not isUp // kırmızı → yeşil
sell = not isUp and isUp // yeşil → kırmızı
plotshape(buy, style=shape.arrowup, location=location.belowbar, color=color.green, size=size.large, text="AL")
plotshape(sell, style=shape.arrowdown, location=location.abovebar, color=color.red, size=size.large, text="SAT")
alertcondition(buy, "EMA AL", "EMA yukarı döndü")
alertcondition(sell, "EMA SAT", "EMA aşağı döndü")
Renkli EMA BAR//@version=5
indicator("EMA Color Cross + Trend Arrows V6", overlay=true, max_bars_back=500)
// === Inputs ===
fastLen = input.int(9, "Hızlı EMA")
slowLen = input.int(21, "Yavaş EMA")
// === EMA Hesapları ===
emaFast = ta.ema(close, fastLen)
emaSlow = ta.ema(close, slowLen)
// Trend Yönü
trendUp = emaFast > emaSlow
trendDown = emaFast < emaSlow
// === Çizgi Renkleri ===
lineColor = trendUp ? color.new(color.green, 0) : color.new(color.red, 0)
// === EMA Çizgileri (agresif kalın) ===
plot(emaFast, "Hızlı EMA", lineColor, 4)
plot(emaSlow, "Yavaş EMA", color.new(color.gray, 70), 2)
// === Ok Sinyalleri ===
buySignal = ta.crossover(emaFast, emaSlow)
sellSignal = ta.crossunder(emaFast, emaSlow)
// Büyük Oklar
plotshape(buySignal, title="AL", style=shape.triangleup, color=color.green, size=size.large, location=location.belowbar)
plotshape(sellSignal, title="SAT", style=shape.triangledown, color=color.red, size=size.large, location=location.abovebar)
// === Trend Bar Color ===
barcolor(trendUp ? color.green : color.red)
EMA Cross Color Buy/Sell//@version=5
indicator("EMA Color Cross + Trend Arrows V6", overlay=true, max_bars_back=500)
// === Inputs ===
fastLen = input.int(9, "Hızlı EMA")
slowLen = input.int(21, "Yavaş EMA")
// === EMA Hesapları ===
emaFast = ta.ema(close, fastLen)
emaSlow = ta.ema(close, slowLen)
// Trend Yönü
trendUp = emaFast > emaSlow
trendDown = emaFast < emaSlow
// === Çizgi Renkleri ===
lineColor = trendUp ? color.new(color.green, 0) : color.new(color.red, 0)
// === EMA Çizgileri (agresif kalın) ===
plot(emaFast, "Hızlı EMA", lineColor, 4)
plot(emaSlow, "Yavaş EMA", color.new(color.gray, 70), 2)
// === Ok Sinyalleri ===
buySignal = ta.crossover(emaFast, emaSlow)
sellSignal = ta.crossunder(emaFast, emaSlow)
// Büyük Oklar
plotshape(buySignal, title="AL", style=shape.triangleup, color=color.green, size=size.large, location=location.belowbar)
plotshape(sellSignal, title="SAT", style=shape.triangledown, color=color.red, size=size.large, location=location.abovebar)
// === Trend Bar Color ===
barcolor(trendUp ? color.green : color.red)
EMA Color Cross + Trend Arrows V6//@version=5
indicator("EMA Color Cross + Trend Arrows V6", overlay=true, max_bars_back=500)
// === Inputs ===
fastLen = input.int(9, "Hızlı EMA")
slowLen = input.int(21, "Yavaş EMA")
// === EMA Hesapları ===
emaFast = ta.ema(close, fastLen)
emaSlow = ta.ema(close, slowLen)
// Trend Yönü
trendUp = emaFast > emaSlow
trendDown = emaFast < emaSlow
// === Çizgi Renkleri ===
lineColor = trendUp ? color.new(color.green, 0) : color.new(color.red, 0)
// === EMA Çizgileri (agresif kalın) ===
plot(emaFast, "Hızlı EMA", lineColor, 4)
plot(emaSlow, "Yavaş EMA", color.new(color.gray, 70), 2)
// === Ok Sinyalleri ===
buySignal = ta.crossover(emaFast, emaSlow)
sellSignal = ta.crossunder(emaFast, emaSlow)
// Büyük Oklar
plotshape(buySignal, title="AL", style=shape.triangleup, color=color.green, size=size.large, location=location.belowbar)
plotshape(sellSignal, title="SAT", style=shape.triangledown, color=color.red, size=size.large, location=location.abovebar)
// === Trend Bar Color ===
barcolor(trendUp ? color.green : color.red)
EMA Color Cross + Trend Bars//@version=5
indicator("EMA Color Cross + Trend Bars", overlay=true)
// EMA ayarları
shortEMA = input.int(9, "Short EMA")
longEMA = input.int(21, "Long EMA")
emaShort = ta.ema(close, shortEMA)
emaLong = ta.ema(close, longEMA)
// Trend yönü
trendUp = emaShort > emaLong
trendDown = emaShort < emaLong
// EMA çizgileri trend yönüne göre renk değiştirsin
plot(emaShort, color=trendUp ? color.green : color.red, linewidth=2)
plot(emaLong, color=trendUp ? color.green : color.red, linewidth=2)
// Barları trend yönüne göre renklendir
barcolor(trendUp ? color.green : color.red)
// Kesişim sinyalleri ve oklar
longSignal = ta.crossover(emaShort, emaLong)
shortSignal = ta.crossunder(emaShort, emaLong)
plotshape(longSignal, title="Long", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.large)
plotshape(shortSignal, title="Short", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.large)






















