Q2A_CandlestickPatterns# Q2A Candlestick Patterns Library
A comprehensive Pine Script v6 library for detecting 44 candlestick patterns with trend detection and property calculations.
## 📋 Overview
The **Q2A_CandlestickPatterns** library provides a complete toolkit for identifying traditional Japanese candlestick patterns in TradingView. It includes both reversal and continuation patterns, organized by the number of candles required (1, 2, 3, and 5 candles).
### Key Features
- ✅ **44 Pattern Detection Functions** - Comprehensive coverage of major candlestick patterns
- ✅ **Organized by Candle Count** - Easy navigation (1, 2, 3, and 5 candle patterns)
- ✅ **Bullish/Bearish/Neutral Classification** - Clear signal categorization
- ✅ **Detailed Pattern Descriptions** - Each pattern returns name, type, and explanation
- ✅ **Property Calculation Helper** - Core function for analyzing candle characteristics
- ✅ **Clean Q2A Code Style** - Professional, maintainable, and well-documented
## 🚀 Quick Start
### Installation
```pinescript
import Quant2Alpha/Q2A_CandlestickPatterns/1 as candlePatterns
```
### Basic Usage Example
```pinescript
//@version=6
indicator("Candlestick Pattern Detector", overlay=true)
import Quant2Alpha/Q2A_CandlestickPatterns/1 as cp
// Calculate candle properties
= cp.calculateCandleProperties(open, close, high, low, ta.ema(close - open, 14), 5.0, 10.0, 10.0)
// Define trend
upTrend = close > ta.sma(close, 50)
downTrend = close < ta.sma(close, 50)
// Detect patterns
= cp.detectHammerBullish(smallBody, body, bodyLo, hl2, dnShadow, 2.0, hasUpShadow, downTrend)
= cp.detectShootingStarBearish(smallBody, body, bodyHi, hl2, upShadow, 2.0, hasDnShadow, upTrend)
// Visualize
if hammerDetected
label.new(bar_index, low, hammerName, style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small, tooltip=hammerDesc)
if shootingStarDetected
label.new(bar_index, high, shootingStarName, style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small, tooltip=shootingStarDesc)
```
## 📚 Library Structure
### Core Function
#### `calculateCandleProperties()`
Calculates essential candlestick properties for pattern detection.
**Parameters:**
- `p_open`, `p_close`, `p_high`, `p_low` - OHLC prices
- `bodyAvg` - Average body size (e.g., EMA of body sizes)
- `shadowPercent` - Minimum shadow size as % of body (typically 5.0)
- `shadowEqualsPercent` - Tolerance for equal shadows (typically 10.0)
- `dojiBodyPercent` - Max body size as % of range for doji (typically 10.0)
**Returns:** 17 properties including body dimensions, shadows, and candle characteristics
## 📊 Available Patterns
### Single Candle Patterns (13 patterns)
#### Bullish (5)
| Pattern | Function | Description |
| --------------------- | -------------------------------- | ----------------------------------------------------------- |
| **Hammer** | `detectHammerBullish()` | Small body at top, long lower shadow, forms in downtrend |
| **Inverted Hammer** | `detectInvertedHammerBullish()` | Small body at bottom, long upper shadow, forms in downtrend |
| **Marubozu White** | `detectMarubozuWhiteBullish()` | Long green body with little to no shadows |
| **Long Lower Shadow** | `detectLongLowerShadowBullish()` | Lower shadow is 75%+ of total range |
| **Dragonfly Doji** | `detectDragonflyDojiBullish()` | Doji with long lower shadow, no upper shadow |
#### Bearish (5)
| Pattern | Function | Description |
| --------------------- | -------------------------------- | --------------------------------------------------------- |
| **Hanging Man** | `detectHangingManBearish()` | Small body at top, long lower shadow, forms in uptrend |
| **Shooting Star** | `detectShootingStarBearish()` | Small body at bottom, long upper shadow, forms in uptrend |
| **Marubozu Black** | `detectMarubozuBlackBearish()` | Long red body with little to no shadows |
| **Long Upper Shadow** | `detectLongUpperShadowBearish()` | Upper shadow is 75%+ of total range |
| **Gravestone Doji** | `detectGravestoneDojiBearish()` | Doji with long upper shadow, no lower shadow |
#### Neutral (3)
| Pattern | Function | Description |
| ---------------------- | -------------------------- | --------------------------------------------- |
| **Doji** | `detectDoji()` | Open equals close, indicates indecision |
| **Spinning Top White** | `detectSpinningTopWhite()` | Small green body with long shadows both sides |
| **Spinning Top Black** | `detectSpinningTopBlack()` | Small red body with long shadows both sides |
### Two Candle Patterns (15 patterns)
#### Bullish (7)
| Pattern | Function | Description |
| ------------------------ | ------------------------------ | ------------------------------------------------------ |
| **Rising Window** | `detectRisingWindowBullish()` | Gap up between two candles in uptrend |
| **Tweezer Bottom** | `detectTweezerBottomBullish()` | Two candles with identical lows in downtrend |
| **Piercing** | `detectPiercingBullish()` | Green candle closes above midpoint of prior red candle |
| **Doji Star Bullish** | `detectDojiStarBullish()` | Doji gaps down after red candle in downtrend |
| **Engulfing Bullish** | `detectEngulfingBullish()` | Large green candle engulfs prior small red candle |
| **Harami Bullish** | `detectHaramiBullish()` | Small green candle contained in prior large red candle |
| **Harami Cross Bullish** | `detectHaramiCrossBullish()` | Doji contained in prior large red candle |
#### Bearish (8)
| Pattern | Function | Description |
| ------------------------ | ------------------------------- | ------------------------------------------------------ |
| **On Neck** | `detectOnNeckBearish()` | Small green closes near prior red candle's low |
| **Falling Window** | `detectFallingWindowBearish()` | Gap down between two candles in downtrend |
| **Tweezer Top** | `detectTweezerTopBearish()` | Two candles with identical highs in uptrend |
| **Dark Cloud Cover** | `detectDarkCloudCoverBearish()` | Red candle closes below midpoint of prior green candle |
| **Doji Star Bearish** | `detectDojiStarBearish()` | Doji gaps up after green candle in uptrend |
| **Engulfing Bearish** | `detectEngulfingBearish()` | Large red candle engulfs prior small green candle |
| **Harami Bearish** | `detectHaramiBearish()` | Small red candle contained in prior large green candle |
| **Harami Cross Bearish** | `detectHaramiCrossBearish()` | Doji contained in prior large green candle |
### Three Candle Patterns (14 patterns)
#### Bullish (7)
| Pattern | Function | Description |
| -------------------------- | ----------------------------------- | ------------------------------------------------ |
| **Upside Tasuki Gap** | `detectUpsideTasukiGapBullish()` | Three candles with gap that fails to close |
| **Morning Doji Star** | `detectMorningDojiStarBullish()` | Red, gapped doji, green - stronger morning star |
| **Morning Star** | `detectMorningStarBullish()` | Red, small middle, green - classic reversal |
| **Three White Soldiers** | `detectThreeWhiteSoldiersBullish()` | Three consecutive long green candles |
| **Abandoned Baby Bullish** | `detectAbandonedBabyBullish()` | Doji gaps away from both surrounding candles |
| **Tri-Star Bullish** | `detectTriStarBullish()` | Three dojis with gaps between them |
| **Kicking Bullish** | `detectKickingBullish()` | Black marubozu followed by gapped white marubozu |
#### Bearish (7)
| Pattern | Function | Description |
| -------------------------- | ---------------------------------- | ------------------------------------------------ |
| **Downside Tasuki Gap** | `detectDownsideTasukiGapBearish()` | Three candles with gap that fails to close |
| **Evening Doji Star** | `detectEveningDojiStarBearish()` | Green, gapped doji, red - stronger evening star |
| **Evening Star** | `detectEveningStarBearish()` | Green, small middle, red - classic reversal |
| **Three Black Crows** | `detectThreeBlackCrowsBearish()` | Three consecutive long red candles |
| **Abandoned Baby Bearish** | `detectAbandonedBabyBearish()` | Doji gaps away from both surrounding candles |
| **Tri-Star Bearish** | `detectTriStarBearish()` | Three dojis with gaps between them |
| **Kicking Bearish** | `detectKickingBearish()` | White marubozu followed by gapped black marubozu |
### Five Candle Patterns (2 patterns)
#### Bullish (1)
| Pattern | Function | Description |
| ------------------------ | ----------------------------------- | ----------------------------------------------------- |
| **Rising Three Methods** | `detectRisingThreeMethodsBullish()` | Long green, three small reds inside range, long green |
#### Bearish (1)
| Pattern | Function | Description |
| ------------------------- | ------------------------------------ | --------------------------------------------------- |
| **Falling Three Methods** | `detectFallingThreeMethodsBearish()` | Long red, three small greens inside range, long red |
## 💡 Advanced Usage Examples
### Multi-Pattern Strategy
```pinescript
//@version=6
strategy("Multi-Pattern Strategy", overlay=true)
import Quant2Alpha/Q2A_CandlestickPatterns/1 as cp
// Setup
bodyAvg = ta.ema(math.abs(close - open), 14)
= cp.calculateCandleProperties(open, close, high, low, bodyAvg, 5.0, 10.0, 10.0)
// Trends
sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)
upTrend = close > sma50 and sma50 > sma200
downTrend = close < sma50 and sma50 < sma200
// Detect bullish patterns
= cp.detectHammerBullish(smallBody, body, bodyLo, hl2, dnShadow, 2.0, hasUpShadow, downTrend)
= cp.detectEngulfingBullish(downTrend, whiteBody, longBody, blackBody, smallBody, close, open)
= cp.detectMorningStarBullish(longBody, smallBody, downTrend, blackBody, whiteBody, bodyHi, bodyLo, bodyMiddle)
// Detect bearish patterns
= cp.detectShootingStarBearish(smallBody, body, bodyHi, hl2, upShadow, 2.0, hasDnShadow, upTrend)
= cp.detectDarkCloudCoverBearish(upTrend, whiteBody, longBody, blackBody, open, high, close, bodyMiddle)
= cp.detectEveningStarBearish(longBody, smallBody, upTrend, whiteBody, blackBody, bodyLo, bodyHi, bodyMiddle)
// Entry signals
bullishSignal = hammer or engulfing or morningStar
bearishSignal = shootingStar or darkCloud or eveningStar
// Execute trades
if bullishSignal and strategy.position_size == 0
strategy.entry("Long", strategy.long)
if bearishSignal and strategy.position_size > 0
strategy.close("Long")
```
### Pattern Scanner Indicator
```pinescript
//@version=6
indicator("Pattern Scanner", overlay=true)
import Quant2Alpha/Q2A_CandlestickPatterns/1 as cp
// Configuration
showBullish = input.bool(true, "Show Bullish Patterns")
showBearish = input.bool(true, "Show Bearish Patterns")
showNeutral = input.bool(false, "Show Neutral Patterns")
// Calculate properties
bodyAvg = ta.ema(math.abs(close - open), 14)
= cp.calculateCandleProperties(open, close, high, low, bodyAvg, 5.0, 10.0, 10.0)
// Trends
upTrend = close > ta.sma(close, 50)
downTrend = close < ta.sma(close, 50)
// Scan for all patterns and display
// (Add pattern detection and visualization logic here)
```
## 🔧 Configuration Best Practices
### Recommended Parameter Values
| Parameter | Typical Value | Description |
| ---------------------- | ----------------------------- | ------------------------------- |
| `bodyAvg` | `ta.ema(abs(close-open), 14)` | 14-period EMA of body size |
| `shadowPercent` | `5.0` | 5% of body for shadow detection |
| `shadowEqualsPercent` | `10.0` | 10% tolerance for equal shadows |
| `dojiBodyPercent` | `10.0` | Body ≤10% of range = doji |
| `factor` (hammer/star) | `2.0` | Shadow should be 2x body size |
### Trend Definition
```pinescript
// Simple SMA crossover
upTrend = close > ta.sma(close, 50)
downTrend = close < ta.sma(close, 50)
// Double SMA confirmation
upTrend = close > ta.sma(close, 50) and ta.sma(close, 50) > ta.sma(close, 200)
downTrend = close < ta.sma(close, 50) and ta.sma(close, 50) < ta.sma(close, 200)
// EMA trend
upTrend = close > ta.ema(close, 20)
downTrend = close < ta.ema(close, 20)
```
## 📖 Function Return Format
All pattern detection functions return a tuple with 4 elements:
```pinescript
```
- **detected** (bool) - `true` if pattern is found, `false` otherwise
- **name** (string) - Pattern name (e.g., "Hammer", "Shooting Star")
- **type** (string) - "Bullish", "Bearish", or "Neutral"
- **description** (string) - Detailed explanation of the pattern
### Example
```pinescript
= cp.detectHammerBullish(...)
if isHammer
log.info("Pattern: " + patternName) // "Hammer"
log.info("Type: " + patternType) // "Bullish"
log.info("Info: " + patternInfo) // Full description
```
## 🎯 Pattern Reliability
### High Reliability (Strong Signals)
- Engulfing patterns (Bullish/Bearish)
- Morning/Evening Star formations
- Three White Soldiers / Three Black Crows
- Hammer / Shooting Star (with confirmation)
### Medium Reliability (Use with Confirmation)
- Harami patterns
- Piercing / Dark Cloud Cover
- Tweezer Top/Bottom
- Doji Star patterns
### Context-Dependent (Require Trend Analysis)
- Window patterns (gaps)
- Kicking patterns
- Tasuki Gap patterns
- Three Methods patterns
## 📝 Notes
- **Trend Context is Critical**: Most reversal patterns require proper trend identification for accuracy
- **Confirmation Recommended**: Wait for next candle confirmation before taking action
- **Volume Matters**: Consider volume alongside patterns (not included in this library)
- **Multiple Timeframes**: Check patterns across multiple timeframes for stronger signals
- **Risk Management**: Always use stop losses regardless of pattern strength
## 🔗 Integration with Other Indicators
This library works well with:
- Moving averages (trend confirmation)
- RSI/Stochastic (overbought/oversold)
- Volume indicators (confirmation)
- Support/Resistance levels (context)
- ATR (position sizing)
## 📄 License
This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
## 👤 Author
© Quant2Alpha
## 🆘 Support
For issues, questions, or contributions, please refer to the QUANT2ALPHA documentation or community channels.
---
**Version:** 1.0
**Pine Script Version:** 6
**Last Updated:** 2025
Indicatori e strategie
Combined EMA (5, 9, 21)Updated script to add up and down arrows when EMAS cross. Prints a green down arrow when the 5 ema crosses below the 9 Ema and a black down arrow when the 5 crosses below the 21. It also prints a red up arrow when the 9 crosses above the 5 and when the 5 crosses above the 21
MACD Cross Long/Short Alert📌 MACD Cross Long/Short Alert — Indicator Description
📌 MACD 上/下穿信号线提醒指标说明
🇺🇸 English Description
This indicator provides clean and actionable MACD cross alerts, designed for traders who need quick “long/short” signals based on MACD line and Signal line interactions.
Key Features
Standard MACD Calculation
Uses customizable Fast EMA, Slow EMA, and Signal EMA.
Cross-Based Trading Signals
Bullish Cross (MACD crossover Signal) → Long setup
Bearish Cross (MACD crossunder Signal) → Short setup
Chart Markers
Triangles plotted directly on the chart for fast visual recognition.
Built-in Alerts
Automatically triggers alerts when MACD crosses above/below the signal line.
Works with any timeframe and any asset.
Use Cases
Intraday trend reversal detection
Momentum confirmation
Breakout retest validation
Simple auto-trading signal for strategies/robots
Quick scalp entries on 5m/10m/30m
This MACD tool is ideal for traders who need a fast, reliable long/short trigger without unnecessary complexity.
🇨🇳 中文说明
本指标提供 MACD 上穿/下穿信号线的即时做多/做空提醒,适用于所有周期与品种,是一个简洁、实用的趋势转折信号工具。
主要功能
标准 MACD 计算
快线 EMA、慢线 EMA、Signal EMA 均可自定义。
交叉交易信号
上穿 Signal → 多头信号(做多)
下穿 Signal → 空头信号(做空)
图表标记
图中自动绘制上/下三角形,方便肉眼快速发现信号。
内置警报提醒
自动推送 MACD 上下穿事件,可用于:
APP 推送
邮件提醒
自动化策略触发
日内做单提醒
适用场景
日内反转捕捉(5m / 10m / 30m)
动量确认
趋势切换点识别
回踩/突破后的方向确认
自动交易机器人信号源
Multi Timeframe Trend IndicatorDiscreet visual display across 4 timeframes (adjustable). If you trade on a 5-minute timeframe, for example, you have an all-in-one visual display across the 4 higher timeframes (e.g., m15, m30, h1 and h4) for better decision-making.
Weekly Inside Bar Zoneweekly inside bar on lower timeframe charts creates zones for breakout and failures
Sectors Comparison with Auto LabelsThis indicator creates a label which updates with the chart value.
2 MACD VISUEL — 4H / 1H / 15M + CONFIRMATION 5M//@version=6
indicator("MTF MACD VISUEL — 4H / 1H / 15M + CONFIRMATION 5M", overlay=true, max_labels_count=500)
// ─────────────────────────────
// Fonction MACD Histogram
// ─────────────────────────────
f_macd(src) =>
fast = ta.ema(src, 12)
slow = ta.ema(src, 26)
macd = fast - slow
signal = ta.ema(macd, 9)
hist = macd - signal
hist
// ─────────────────────────────
// MTF MACD HISTOGRAM
// ─────────────────────────────
h4 = request.security(syminfo.tickerid, "240", f_macd(close))
h1 = request.security(syminfo.tickerid, "60", f_macd(close))
h15 = request.security(syminfo.tickerid, "15", f_macd(close))
h5 = request.security(syminfo.tickerid, "5", f_macd(close))
// Signes
s4 = h4 > 0 ? 1 : h4 < 0 ? -1 : 0
s1 = h1 > 0 ? 1 : h1 < 0 ? -1 : 0
s15 = h15 > 0 ? 1 : h15 < 0 ? -1 : 0
s5 = h5 > 0 ? 1 : h5 < 0 ? -1 : 0
// Conditions
three_same = (s4 == s1) and (s1 == s15) and (s4 != 0)
five_same = three_same and (s5 == s4)
// BUY / SELL logiques
isBUY = five_same and s4 == 1
isSELL = five_same and s4 == -1
// ─────────────────────────────
// DASHBOARD VISUEL (en haut du graphique)
// ─────────────────────────────
var table dash = table.new(position.top_right, 4, 2, border_color=color.black)
table.cell(dash, 0, 0, "4H", bgcolor = s4 == 1 ? color.green : s4 == -1 ? color.red : color.gray)
table.cell(dash, 1, 0, "1H", bgcolor = s1 == 1 ? color.green : s1 == -1 ? color.red : color.gray)
table.cell(dash, 2, 0, "15M", bgcolor = s15 == 1 ? color.green : s15 == -1 ? color.red : color.gray)
table.cell(dash, 3, 0, "5M", bgcolor = s5 == 1 ? color.green : s5 == -1 ? color.red : color.gray)
table.cell(dash, 0, 1, s4 == 1 ? "↑" : s4 == -1 ? "↓" : "·", bgcolor=color.new(color.black, 0), text_color=color.white)
table.cell(dash, 1, 1, s1 == 1 ? "↑" : s1 == -1 ? "↓" : "·", bgcolor=color.new(color.black, 0), text_color=color.white)
table.cell(dash, 2, 1, s15 == 1 ? "↑" : s15 == -1 ? "↓" : "·", bgcolor=color.new(color.black, 0), text_color=color.white)
table.cell(dash, 3, 1, s5 == 1 ? "↑" : s5 == -1 ? "↓" : "·", bgcolor=color.new(color.black, 0), text_color=color.white)
// ─────────────────────────────
// SIGNES VISUELS SUR LE GRAPHIQUE
// ─────────────────────────────
plotshape(isBUY, title="BUY", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.large, text="BUY")
plotshape(isSELL, title="SELL", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.large, text="SELL")
// Histogramme du MACD 5M en couleur tendance
plot(h5, title="MACD Hist 5M", color = h5 >= 0 ? color.green : color.red, style=plot.style_columns)
// ─────────────────────────────
// Alerte Webhook (message constant OBLIGATOIRE)
// ─────────────────────────────
alertcondition(isBUY, title="Signal BUY Confirmé", message="MTF_MACD_BUY")
alertcondition(isSELL, title="Signal SELL Confirmé", message="MTF_MACD_SELL")
NYMO Fib Levels - RGNYMO is a single-session tool built around Fibonacci projections from the New York morning move. It automatically marks the NYMO session, measures its high–low range and projects your custom fib multiples above and below price, with every level drawn and labelled so you always know exactly which multiple you are trading around.
The core of the script is the 12:00–12:30 opening window. That first 30 minutes is treated as the price-discovery phase of the session: it captures the initial burst of liquidity, the repricing of overnight positions and the first real directional push. The high and low of 12:00–12:30 form the opening range, and all fib projections are anchored to that move, turning the very first half-hour into a structured map for the rest of the session.
On top of the fib framework, NYMO can show the NYMO session box, compare the current range to recent NYMO statistics, and trigger alerts when price breaks the NYMO high or low or trades through key fib areas. It is built for traders who only care about the New York morning and want all of their structure, targets and alerts driven by fibs from that one defined opening window.
Weekly Anchored VWAP (Auto Reset)This Anchored VWAP automatically resets to Sunday Futures open at 6 PM NYC EST. It shows up on all time frames
Bifurcation Early WarningBifurcation Early Warning (BEW) — Chaos Theory Regime Detection
OVERVIEW
The Bifurcation Early Warning indicator applies principles from chaos theory and complex systems research to detect when markets are approaching critical transition points — moments where the current regime is likely to break down and shift to a new state.
Unlike momentum or trend indicators that tell you what is happening, BEW tells you when something is about to change. It provides early warning of regime shifts before they occur, giving traders time to prepare for increased volatility or trend reversals.
THE SCIENCE BEHIND IT
In complex systems (weather, ecosystems, financial markets), major transitions don't happen randomly. Research has identified three universal warning signals that precede critical transitions:
1. Critical Slowing Down
As a system approaches a tipping point, it becomes "sluggish" — small perturbations take longer to decay. In markets, this manifests as rising autocorrelation in returns.
2. Variance Amplification
Short-term volatility begins expanding relative to longer-term baselines as the system destabilizes.
3. Flickering
The system oscillates between two potential states before committing to one — visible as increased crossing of mean levels.
BEW combines all three signals into a single composite score.
COMPONENTS
AR(1) Coefficient — Critical Slowing Down (Blue)
Measures lag-1 autocorrelation of returns over a rolling window.
• Rising toward 1.0: Market becoming "sticky," slow to mean-revert — transition approaching
• Low values (<0.3): Normal mean-reverting behavior, stable regime
Variance Ratio (Purple)
Compares short-term variance to long-term variance.
• Above 1.5: Short-term volatility expanding — energy building before a move
• Near 1.0: Volatility stable, no unusual pressure
Flicker Count (Yellow/Teal)
Counts state changes (crossings of the dynamic mean) within the lookback period.
• High count: Market oscillating between states — indecision before commitment
• Low count: Price firmly in one regime
INTERPRETING THE BEW SCORE
0–50 (STABLE): Normal market conditions. Existing strategies should perform as expected.
50–70 (WARNING): Elevated instability detected. Consider reducing exposure or tightening risk parameters.
70–85 (DANGER): High probability of regime change. Avoid initiating new positions; widen stops on existing ones.
85+ (CRITICAL): Bifurcation likely imminent or in progress. Expect large, potentially unpredictable moves.
HOW TO USE
As a Regime Filter
• BEW < 50: Normal trading conditions — apply your standard strategies
• BEW > 60: Elevated caution — reduce position sizes, avoid mean-reversion plays
• BEW > 80: High alert — consider staying flat or hedging existing positions
As a Preparation Signal
BEW tells you when to pay attention, not which direction. When readings elevate:
• Watch for confirmation from volume, order flow, or other directional indicators
• Prepare for breakout scenarios in either direction
• Adjust take-profit and stop-loss distances for larger moves
For Volatility Adjustment
High BEW periods correlate with larger candles. Use this to:
• Widen stops during elevated readings
• Adjust position sizing inversely to BEW score
• Set more ambitious profit targets when entering during high-BEW breakouts
Divergence Analysis
• Price making new highs/lows while BEW stays low: Trend likely to continue smoothly
• Price consolidating while BEW rises: Breakout incoming — direction uncertain but move will be significant
SETTINGS GUIDE
Core Settings
• Lookback Period: General reference period (default: 50)
• Source: Price source for calculations (default: close)
Critical Slowing Down (AR1)
• AR(1) Calculation Period: Bars used for autocorrelation (default: 100). Higher = smoother, slower.
• AR(1) Warning Threshold: Level at which AR(1) is considered elevated (default: 0.85)
Variance Growth
• Variance Short Period: Fast variance window (default: 20)
• Variance Long Period: Slow variance window (default: 100)
• Variance Ratio Threshold: Level for maximum score contribution (default: 1.5)
Regime Flickering
• Flicker Detection Period: Window for counting state changes (default: 20)
• Flicker Bandwidth: ATR multiplier for state detection — lower = more sensitive (default: 0.5)
• Flicker Count Threshold: Number of crossings for maximum score (default: 4)
TIMEFRAME RECOMMENDATIONS
• 5m–15m: Use shorter periods (AR: 30–50, Var: 10/50). Expect more noise.
• 1H: Balanced performance with default or slightly extended settings (AR: 100, Var: 20/100).
• 4H–Daily: Extend periods further (AR: 100–150, Var: 30/150). Cleaner signals, less frequent.
ALERTS
Three alert conditions are included:
• BEW Warning: Score crosses above 50
• BEW Danger: Score crosses above 70
• BEW Critical: Score crosses above 85
LIMITATIONS
• No directional bias: BEW detects instability, not direction. Combine with trend or momentum indicators.
• Not a timing tool: Elevated readings may persist for several bars before the actual move.
• Parameter sensitive: Optimal settings vary by asset and timeframe. Backtest before live use.
• Leading indicator trade-off: Early warning means some false positives are inevitable.
CREDITS
Inspired by research on early warning signals in complex systems:
• Dakos et al. (2012) — "Methods for detecting early warnings of critical transitions"
DISCLAIMER
This indicator is for educational and informational purposes only. It does not constitute financial advice. Past performance is not indicative of future results. Always conduct your own analysis and risk management. Use at your own risk.
First Session Candle (Transparent Label) Change timezone & more"Global First Candle Rule: Session Refinement Tool"
"This tool/template is designed to apply the First Candle Rule across the world's three major trading sessions: New York (NYO), Asia (AO), and London (LO).
It uses New York Time (NY) as the default reference, but the timezone can be easily adjusted to UTC or UTC+7 (Vietnam Time).
🎁 Free for the community!"
SMC IndicatorTitle: Smart Money Concepts Structure & ZigZag
Description: Master market structure with this precision Smart Money Concepts (SMC) tool. Unlike standard ZigZag indicators that repaint (change the past) as price moves, this indicator utilizes a robust, non-repainting detection engine to objectively map Swing Highs, Swing Lows, and structural breaks.
It is designed to help traders identify the true trend direction and spot critical reversal points without the confusion of disappearing signals.
How It Works:
1. Non-Repainting Pivots: The core of this indicator is a custom ZigZag algorithm that "locks in" Swing Highs (H) and Swing Lows (L) only after they are statistically confirmed by a user-defined deviation. Once a label appears, it stays there.
2. Break of Structure (BoS):
Signal: Trend Continuation.
Logic: Triggers when price breaks and closes past a confirmed pivot in the direction of the current trend.
Use Case: confirms the trend is healthy and identifies opportunities to join the move.
3. Change of Character (CHoCH):
Signal: Trend Reversal.
Logic: Triggers when price breaks a key pivot in the opposite direction of the current trend.
Use Case: Serves as an early warning signal that the trend may be ending or reversing.
4. The Ghost Line: A dotted line connects the last confirmed pivot to the current live price. This helps you visualize the developing leg of the structure before it is confirmed.
Visual Guide:
🔵 Blue Label: Bullish Break of Structure (BoS).
🔴 Maroon Label: Bearish Break of Structure (BoS).
🟢 Aqua Label: Bullish Change of Character (CHoCH).
🟠 Orange Label: Bearish Change of Character (CHoCH).
H / L: Confirmed Swing Highs and Lows.
Features:
Precision Tuning: "Deviation %" input supports values as low as 0.01 for scalping on 1-minute charts.
Smart Tooltips: Hover over settings to see recommended values for Daily, Hourly, and Minute timeframes.
Clean Visuals: Uses text-only labels to keep the chart clutter-free.
Alerts: Fully alert-enabled for Bullish/Bearish BoS and CHoCH signals.
Credits: This script is built upon classic Market Structure theory and Smart Money Concepts (SMC), optimized for real-time reliability.
Long Only EMA Strategy (9/20 with 200 EMA Filter)Details:
This strategy is built around a very simple idea: follow the primary trend and enter only when momentum supports it.
It uses three EMAs on a standard candlestick chart:
1. 9‑period EMA – short‑term momentum
2. 20‑period EMA – medium‑term structure
3. 200‑period EMA – long‑term trend filter
The strategy is ** long‑only ** and is mainly designed for swing trading and positional trading.
It avoids counter‑trend trades by taking entries only when price is trading ** above the 200 EMA **, which is commonly used as a long‑term trend reference.
The rules are deliberately kept simple so that they are easy to understand, modify, and test on different markets and timeframes.
---
Key Features
1. **Trend‑Filtered Entries**
- Fresh long positions are considered only when:
- The 9 EMA crosses above the 20 EMA
- The closing price is **above** the 200 EMA
- This attempts to combine short‑term momentum with a higher‑timeframe trend filter.
2. **Clean Exit Logic**
- The long position is exited when the closing price crosses **below** the 20 EMA.
- This creates an objective, rule‑based way to trail the trade as long as the medium‑term structure remains intact.
3. **Long‑Only, No Short Selling**
- The script intentionally ignores short setups.
- This makes it suitable for markets or accounts where short selling is restricted, or for traders who prefer to participate only on the long side of the market.
4. **Simple Visuals**
- All three EMAs are plotted directly on the chart:
- 9 EMA (fast)
- 20 EMA (medium)
- 200 EMA (trend)
- Trade entries and exits are handled by TradingView’s strategy engine, so users can see results in the Strategy Tester as well as directly on the chart.
5. **Backtest‑Friendly Structure**
- Uses TradingView’s built‑in `strategy()` framework.
- Can be applied to different symbols, timeframes, and markets (equities, indices, crypto, etc.).
- Works on standard candlestick charts, which are supported by TradingView’s backtesting engine.
6. **Configurable in Code**
- The EMA periods are defined in the code and can be easily adjusted.
- Users can tailor the parameters to fit their own style (for example, faster EMAs for intraday trading, slower EMAs for positional trades).
---
How to Use
1. **Add the Strategy to Your Chart**
1. Open any symbol and select a **standard candlestick chart**.
2. Apply the strategy from your “My Scripts” section.
3. Make sure it is enabled so that the trades and results appear.
2. **Select Timeframe**
- The logic can be tested on various timeframes:
- Higher timeframes (1H, 4H, 1D) for swing and positional setups.
- Lower timeframes (5m, 15m) for more active trading, if desired.
- Users should experiment and see where the strategy behaves more consistently for their chosen market.
3. **Read the Signals**
- **Entry:**
- A long trade is opened when the 9 EMA crosses above the 20 EMA while the closing price is above the 200 EMA.
- **Exit:**
- The open long position is closed when the closing price crosses below the 20 EMA.
- All orders are generated automatically once the strategy is attached to the chart.
4. **Use the Strategy Tester**
- Go to the **Strategy Tester** tab in TradingView.
- Check:
- Net profit / drawdown
- Win rate and average trade
- List of trades and the equity curve
- Change the date range and timeframe to see how stable the results are over different periods.
5. **Adjust Parameters if Needed**
- Advanced users can open the code and experiment with:
- EMA lengths (for example 8/21 with 200, or 10/30 with 200)
- Risk sizing and capital settings within the `strategy()` call
- Any changes should be thoroughly re‑tested before considering real‑world application.
---
Practical Applications
1. **Swing Trading on Daily Charts**
- Can be applied to stocks, indices, or ETFs on the daily timeframe.
- The 200 EMA acts as a trend filter to stay aligned with the broad direction, while the 9/20 crossover helps catch medium‑term swings inside that trend.
2. **Positional Trades on Higher Timeframes**
- On 4H or 1D charts, this approach can help in holding trades for several days to weeks.
- The exit rule based on the 20 EMA crossing helps avoid emotional decisions and provides a rules‑based way to trail the trend.
3. **Trend‑Following Filter**
- Even if used purely as a filter, the 200 EMA condition can help traders:
- Avoid taking long trades when the market is in a clear downtrend.
- Focus only on instruments that are trading above their long‑term average.
4. **Educational Use**
- The script is intentionally kept straightforward so that newer users can:
- Learn how a moving average crossover strategy works.
- See how to combine a short‑term signal with a long‑term filter.
- Understand how TradingView’s strategy engine handles entries and exits.
5. **Basis for Further Development**
- This can serve as a starting point for more advanced systems.
- Traders can extend it by adding:
- Additional filters (RSI, volume, volatility filters, time‑of‑day filters, etc.)
- Risk management rules (fixed stop loss, take profit, trailing stops).
- The current version is kept minimal on purpose, so modifications are easy to implement and test.
---
Important Notes & Disclaimer
1. This strategy is provided **for testing, research, and educational purposes only**.
2. It is ** not ** a recommendation to buy or sell any financial instrument.
3. Past performance on historical data does not guarantee similar results in live markets.
4. Markets are risky and trading can lead to financial loss; users should always do their own research, manage risk appropriately, and consult a qualified financial professional if needed.
5. Before using any strategy with real capital, it is strongly advised to:
- Forward test it on a demo / paper trading account.
- Check how it behaves during different market phases (trending, sideways, high‑volatility conditions).
You are free to modify the parameters and logic to better align it with your own trading style and risk tolerance.
Ultimate Squeeze & BreakoutTitle: Ultimate Squeeze & Breakout
Description: This professional volatility indicator utilizes the power of Bollinger Bands and Keltner Channels to identify high-probability consolidation zones and explosive breakouts. It is designed to help traders spot "The Squeeze"—a critical period of low volatility where the market builds potential energy before a significant directional move.
How It Works:
1. The Energy (The Squeeze): Using the classic TTM Squeeze logic, the indicator monitors the relationship between price volatility (Bollinger Bands) and average range (Keltner Channels).
Red Cloud: Volatility is compressed. The Bollinger Bands have contracted inside the Keltner Channels. The market is coiling like a spring. This is the Setup Phase.
2. The Breakout (The Release): When price expands and closes outside the bands, the energy is released.
Momentum Filter: A unique filter checks the slope of the 20-period Basis Line (SMA). Breakout colors only trigger if the momentum slope agrees with the breakout direction, helping to filter out weak "fakeouts."
Visual Guide:
☁️ Cloud Colors (Volatility State):
🟥 Red: Squeeze ON (Consolidation/No Trade).
🟣 Fuchsia: Bullish Momentum Breakout.
🔵 Blue: Bearish Momentum Breakout.
⬜ Gray/Green: Normal Trending (Neutral).
Features:
Smart Filters: Breakouts are validated by the underlying momentum slope.
Trend Coloring: Option to switch the neutral trending cloud between Gray and Green.
Precision Tuning: Decimal inputs allow for fine-tuning of Standard Deviation and ATR multipliers.
Alerts: Full alert support for Squeeze Start, Bullish Breakouts, and Bearish Breakouts.
Credits: This script is built upon the foundational TTM Squeeze concept popularized by John Carter, enhanced with dynamic coloring and momentum filtering.
Impulse Trend Suite (LITE) — v1.4🚀 Impulse Trend Suite (LITE) — v1.4
Smart trend visualization with precise flip arrows. A lightweight, momentum-filtered trend tool designed to stay clean, avoid repeated signals, and keep you focused only on real market direction.
✨ What’s New in v1.4
Minor upgrades mostly visual
Added Blue fill between MA lines
clearer labels
📌 Core Features
Trend flip arrows (no spam, 1 signal per turn)
Continuous background zones (gap-free trend shading)
Adaptive Baseline + ATR structure channel
RSI + MACD momentum filter (suppresses weak signals)
Trend Status Panel (UP, DOWN, NEUTRAL)
🔍 Quick Guide
BUY setup = green arrow + green background
SELL setup = red arrow + red background
Stay in the move while color doesn’t change
ATR channel helps avoid chasing overextended candles
🆚 LITE vs PRO
Feature LITE PRO
--------------------- -------- ------------------------------
Trend shading + arrows ✔ ✔ + confirmations
Neutral trend state ✔ ✔ enhanced
Alerts ✖ ✔ full suite
Reversal Zones ✖ ✔ predictive boxes
HTF Filter ✖ ✔ smarter trend bias
Included strategies ✖ ✔ + PDF training
========================================================
🔓 Upgrade to PRO
Reversal Zones • Alerts • HTF Filter • Trend Continuation Strategy
👉 fxsharerobots.com/impulse-trend-pro/
📈 Works on Forex, Stocks, Crypto, Indices, Metals
⌚ Scalping • Intraday • Swing • Long-term
==========================================================
⚠️ LITE - Educational tool. Backtest before trading live.
Visit us for Full Trading Tools Collection here:
fxsharerobots.com/downloads/
Happy trading! — FxShareRobots Team
Volumetric Inverse Fair Value Gap (IFVG) [Kodexius]The Volumetric Inverse Fair Value Gap (IFVG) indicator detects and visualizes inverse fair value gaps (IFVGs) zones where previous inefficiencies in price (fair value gaps) are later invalidated or “inverted.”
Unlike traditional FVG indicators, this tool integrates volume-based analysis to quantify the bullish, bearish, and overall strength of each inversion. It visually represents these metrics within a dynamically updating box on the chart, giving traders deeper insight into market reactions when liquidity imbalances are filled and reversed.
Features
Inverse fair value gap detection
The script identifies bullish and bearish fair value gaps, stores them as pending zones, and turns them into inverse fair value gaps when price trades back through the gap in the opposite direction. Each valid inversion becomes an active IFVG zone on the chart.
Sensitivity control with ATR filter and strict mode
A minimum gap size based on ATR is used to filter out small and noisy gaps. Strict mode can be enabled so that any wick contact between the relevant candles prevents the gap from being accepted as a fair value gap. This lets you decide how clean and selective the zones should be.
Show Last N Boxes control
The indicator can keep only the most recent N IFVG zones visible. Older zones are removed from the chart once the number of active objects exceeds the user setting. This prevents clutter on higher timeframes or long histories and keeps attention on the most relevant recent zones.
Ghost box for the original gap
When the ghost option is enabled, the script draws a faint box that marks the original fair value gap from which the inverse zone came. This makes it easy to see where the initial imbalance appeared and how price later inverted that area.
Volumetric bull, bear and strength metrics
For each IFVG, the script estimates how much of the bar volume is associated with buying and how much with selling, then computes bull percentage, bear percentage and a strength score that uses a percentile rank of volume. These values are stored with the IFVG object and drive the visualization inside the zone.
Three band visual layout inside each IFVG
Each active IFVG is drawn as a container with three horizontal sections. The top band represents the bull percentage, the middle band the bear percentage and the bottom band the strength metric. The width of each bar reflects its respective value so you can read the structure of the zone at a glance.
Customizable colors and label text
Colors for bull, bear, strength, the empty background area, the ghost box and label text can be adjusted in the inputs. This allows you to match the indicator to different chart themes or highlight specific aspects such as strength or direction.
Automatic invalidation and cleanup
When price clearly closes beyond the IFVG in a way that breaks the logic of that zone, the script marks it as inactive and deletes all boxes and labels linked to it. Only valid and active IFVGs remain on the chart, which keeps the display clean and focused.
Calculations
1. Detecting Fair Value Gaps (FVGs)
A fair value gap is identified when price action leaves an imbalance between candle wicks. Depending on the mode:
Bullish FVG: When low > high
Bearish FVG: When high < low
Optionally, the strict mode ensures wicks do not touch.
The gap’s significance is filtered using the ATR multiplier input to exclude minor noise.
Once detected, FVGs are stored as pending zones until inverted by opposite movement (price crossing through).
bool bull_cond = strict_mode ? (low > high ) : (close > high )
bool bear_cond = strict_mode ? (high < low ) : (close < low )
float gap_size = 0.0
if bull_cond and close > open
gap_size := low - high
if bear_cond and close < open
gap_size := low - high
2. Creating IFVGs (Inversions)
When price later moves through a previous FVG in the opposite direction, an Inverse FVG (IFVG) is created.
For example:
A previous bearish FVG becomes bullish IFVG if price moves upward through it.
A previous bullish FVG becomes bearish IFVG if price moves downward through it.
The IFVG is initialized with structural boundaries (top, bottom) and timestamp metadata to anchor visualization.
if not p.is_bull_gap and close > p.top
inverted := true
to_bull := true
if p.is_bull_gap and close < p.btm
inverted := true
to_bull := false
3. Volume Metrics (Bull, Bear, Strength)
Each IFVG calculates buy and sell volumes from the current bar’s price spread and total volume.
Bull % = proportion of upward (buy) volume
Bear % = proportion of downward (sell) volume
Strength % = normalized percentile rank of total volume
These are obtained through a custom function that estimates directional volume contribution:
calc_metrics(float o, float h, float l, float c, float v) =>
float rng = h - l
float buy_v = 0.0
if rng == 0
buy_v := v * 0.5
else
if c >= o
buy_v := v * ((math.abs(c - o) + (math.min(o, c) - l)) / rng)
else
buy_v := v * ((h - math.max(o, c)) / rng)
float sell_v = v - buy_v
float total = buy_v + sell_v
float p_bull = total > 0 ? buy_v / total : 0
float p_bear = total > 0 ? sell_v / total : 0
float p_str = ta.percentrank(v, 100) / 100.0
MyLibrary with listLibrary "MyLibrary"
fun(x)
- This has a dot
1. This has a number
Parameters:
x (float) : TODO:
- This has a dot
1. This has a number
Double candle engulfing (Optimized)Double Engulfing Pattern Detector (DELO)
This indicator identifies strong trend reversal signals by detecting the confirmation of two consecutive Engulfing Candlestick Patterns.
✨ Key Features:
Bullish Engulfing: Triggers a Buy Signal when two consecutive bullish engulfing patterns are confirmed.
Bearish Engulfing: Triggers a Sell Signal when two consecutive bearish engulfing patterns are confirmed.
1MTF MACD Alignement XAUUSD - Webhook v6//@version=6
indicator("MTF MACD Alignement XAUUSD - Webhook v6", overlay=false)
// ===== Paramètres utilisateur =====
fast_len = input.int(12, "Fast Length")
slow_len = input.int(26, "Slow Length")
signal_len = input.int(9, "Signal Length")
repl_secret = input.string(title="Webhook secret (doit matcher WEBHOOK_SECRET)", defval="Covid-19@2020")
// ===== Fonction MACD histogramme =====
f_macd_hist(src) =>
macd = ta.ema(src, fast_len) - ta.ema(src, slow_len)
signal = ta.ema(macd, signal_len)
hist = macd - signal
hist
// ===== Récupération multi-timeframe =====
hist4h = request.security(syminfo.tickerid, "240", f_macd_hist(close), lookahead=barmerge.lookahead_off)
hist1h = request.security(syminfo.tickerid, "60", f_macd_hist(close), lookahead=barmerge.lookahead_off)
hist15m = request.security(syminfo.tickerid, "15", f_macd_hist(close), lookahead=barmerge.lookahead_off)
hist5m = request.security(syminfo.tickerid, "5", f_macd_hist(close), lookahead=barmerge.lookahead_off)
// ===== Signes de MACD =====
s4 = hist4h > 0 ? 1 : (hist4h < 0 ? -1 : 0)
s1 = hist1h > 0 ? 1 : (hist1h < 0 ? -1 : 0)
s15 = hist15m > 0 ? 1 : (hist15m < 0 ? -1 : 0)
s5 = hist5m > 0 ? 1 : (hist5m < 0 ? -1 : 0)
// ===== Vérification alignement TF supérieurs =====
three_same = (s4 != 0) and (s4 == s1) and (s1 == s15)
// ===== Confirmation 5M =====
five_in_same = three_same and (s5 == s4)
// ===== Préparation du JSON pour webhook =====
signal_type = s4 == 1 ? "BUY" : (s4 == -1 ? "SELL" : "NEUTRAL")
alert_json = '{"secret":"'+repl_secret+'","symbol":"'+syminfo.ticker+'","signal":"'+signal_type+'","time":"'+str.tostring(time, "yyyy-MM-dd HH:mm:ss")+'","aligned": }'
// ===== Alertcondition compilable =====
// v6 n’accepte pas message dynamique, donc on met un message fixe
alertcondition(five_in_same and ta.change(five_in_same), title="MACD Align + 5M confirm", message="MACD alignement détecté")
// ===== Affichage optionnel des histogrammes =====
plot(hist4h, title="hist 4H", color=color.new(color.green, 0), linewidth=1)
plot(hist1h, title="hist 1H", color=color.new(color.blue, 0), linewidth=1)
plot(hist15m, title="hist 15M", color=color.new(color.orange, 0), linewidth=1)
plot(hist5m, title="hist 5M", color=color.new(color.purple, 0), linewidth=1)
Trillotron 5000 Checklist AssistantTrillotron 5000’s Checklist Assistant is a complete multi-factor trading confirmation system designed to help traders avoid low-quality entries and only take high-probability setups.
The indicator evaluates market structure, multi-timeframe EMA alignment, volume, ATR, key levels, and candle confirmation to determine whether a chart meets the full criteria for a CALL (bullish) or PUT (bearish) setup.
When all conditions align, the indicator highlights the chart with a colored background (green for CALL, red for PUT) and prints a clear signal label on the bar. This tool helps reinforce discipline, reduce impulsive trades, and support consistent decision-making across all timeframes.
Moving Averages (all Types) MTF colored! by Moin-TradingEnglish 🇬🇧
Title: Moving Averages (all Types) MTF colored!
Short Description:
By Moin-Trading. A customizable Moving Average Ribbon that automatically colors the lines green if the closing price is above the MA, and red if the price is below it. Based on the classic "MA Ribbon" indicator.
Description:
This indicator, provided by Moin-Trading, is based on the structure of the popular "Moving Average Ribbon" (MA Ribbon) indicator, but enhances it with powerful dynamic color coding and full MA type flexibility.
It offers a visually intuitive tool for market analysis. It plots four individually adjustable moving averages (MAs) on your chart and applies dynamic color coding based on current price action.
Key Features:
Dynamic Coloring: Each MA line automatically turns green if the current close price is greater than or equal to the MA (bullish sentiment), and red if the price is below it (bearish sentiment). This allows for a quick visual assessment of the trend relative to multiple timeframes.
Four Customizable MAs: Track up to four different moving averages simultaneously (defaulting to 20, 50, 100, 200 periods).
MA Type Flexibility: The indicator supports all MA types (SMA, EMA, RMA, WMA, VWMA), with EMA set as the default.
MTF (Multi-Timeframe): The timeframe = "" setting allows you to run the indicator on any desired timeframe to view higher-timeframe MAs on your current chart.






















