Thi Cloud EMA SystemThis is a spinoff of the Ripster's cloud system.
I altered it in order to be more accurate using the 5 min candle instead of the 10
Penunjuk dan strategi
Labden Buy/Sell V1.0Based on the semafor dot indicator, emas, hull moving average RSI, and more. best for trend following / momentum trading and reversals
Z Score k3x3// ===================================
// Z-Score Indicator with Enhanced Visualization
//
// Description:
// This indicator calculates the Z-Score (standard score) of price movements,
// highlighting extreme overbought and oversold conditions with visual alerts.
//
// Features:
// - Dynamic color gradients based on Z-Score values
// - Visual alerts for extreme zones (|Z| > 2)
// - Background highlighting for overbought/oversold areas
// - Shape markers for extreme conditions
// - Customizable period length and standard deviation levels
//
// Interpretation:
// Z > +2: Extreme overbought (red alert)
// Z < -2: Extreme oversold (green alert)
// |Z| < 1: Normal range (neutral colors)
// ===================================
Basic Support and Resistance LinesAs the title says. These are some extremely basic support and resistance lines.
8FigRenko – Precision FVG Zones8FigRenko – Pure FVG Zones is a clean, reliable Fair Value Gap tool designed for traders who want accurate FVG zones only from the chart timeframe — without repainting, without higher-timeframe complications, and without messy borders.
This script is built for traders who want simple, precise, and visually clean imbalance zones that work the way FVGs should work:
🔥 Features
✔ Chart-timeframe FVGs only
No request.security, no multi-TF artifacts, no lagging or repainting.
The script reads exactly what your chart shows and never mixes timeframes.
✔ Wick-based or Body-based detection
Use classic ICT wick gaps, or switch to body-only gaps with one click.
✔ Minimum FVG size (points)
Filters out noise by requiring a minimum point distance (default: 5 points).
Great for futures and fast intraday charts.
✔ Clean, seamless boxes (no borders)
The FVG zones are rendered with borderless boxes, matching the modern style shown in institutional imbalance tools.
✔ Proper “end-to-end” FVG drawing
Each gap box starts from the origin of the imbalance and extends forward automatically.
✔ Auto-disrespect removal
FVGs are automatically deleted when price invalidates the zone:
Bullish FVG removed if close < FVG low
Bearish FVG removed if close > FVG high
No clutter. No manual cleanup.
✔ Extend zones forever or to the current bar
Choose if your FVGs run across the full future chart or just up to the latest candle.
✔ Optional: show only most recent FVG
Great for scalping or IFV (Immediate Fair Value) strategies.
5-8-13 + AVWAP + Fibonacci FULL Sistem (Temiz & Profesyonel)✅ What This Indicator Is Doing (Full Explanation in English)
Your custom system combines several powerful components:
EMA 5-8-13,
AVWAP,
Auto Fibonacci,
Triple-Confirmation Buy/Sell Signals,
Background Trend Coloring.
Below is the complete breakdown.
🟩 1. Trend Detection with EMA 5-8-13
The indicator colors the background based on the alignment of:
EMA 5
EMA 8
EMA 13
Trend logic:
Uptrend (Green background):
EMA5 > EMA8 > EMA13
Downtrend (Red background):
EMA5 < EMA8 < EMA13
Caution Zone (Brown/Orange):
EMA5 < EMA8 but EMA8 > EMA13
→ Trend weakening, prepare for reversal.
🟩 2. Classic Buy/Sell Signals (EMA Cross)
These labels are the small “AL” and “SAT” signals.
BUY: EMA 5 crosses above EMA 13
SELL: EMA 5 crosses below EMA 13
This captures basic trend reversals.
🟩 3. AVWAP Dip/Peak Detection
The indicator automatically finds significant swing points:
AVWAP DIP (Green small label)
AVWAP PEAK (Red small label)
It then launches a new AVWAP line starting from that pivot.
So the yellow line is always the current Anchored VWAP starting from the most recent important DIP or PEAK.
🟩 4. Auto Fibonacci Levels (Clean Version)
The indicator calculates Fibonacci levels based on the last N bars (120 by default):
0.0
0.236
0.382
0.500
0.618
0.786
1.0
You now use the clean version, meaning:
✔ Only one set of Fibonacci lines appears
✔ No overlapping lines
✔ No chart clutter
✔ Always readable and minimal
🟩 5. Triple-Confirmation Buy/Sell Signals (Strong Signals)
These are the more important green/red labels (“🔥 AL” / “⚠️ SAT”).
A TRIPLE BUY (AL) happens when:
Price breaks above AVWAP
EMA 5-8-13 are aligned upward (trendUp)
Price is above Fibonacci 0.382
A TRIPLE SELL (SAT) happens when:
Price breaks below AVWAP
EMA 5-8-13 aligned downward (trendDown)
Price is below Fibonacci 0.382
This removes weak signals and gives high-quality entries and exits.
🟩 Summary of What You Saw on the Chart
Trend shifted to caution zone
Then EMA trend fully turned bearish
Price broke below AVWAP
Price dropped below Fibonacci 0.382
Triple Confirmation Sell appeared
Downtrend continued strongly afterward
Your indicator correctly identified:
👉 Trend weakening
👉 Bearish reversal
👉 Strong Sell zone
👉 Final drop
FVG – (auto close + age) GR V1.0FVG – Fair Value Gaps (auto close + age counter)
Short Description
Automatically detects Fair Value Gaps (FVGs) on the current timeframe, keeps them open until price fully fills the gap or a maximum bar age is reached, and shows how many candles have passed since each FVG was created.
Full Description
This indicator automatically finds and visualizes Fair Value Gaps (FVGs) using the classic 3-candle ICT logic on any timeframe.
It works on whatever timeframe you apply it to (M1, M5, H1, H4, etc.) and adapts to the current chart.
FVG detection logic
The script uses a 3-candle pattern:
Bullish FVG
Condition:
low > high
Gap zone:
Lower boundary: high
Upper boundary: low
Bearish FVG
Condition:
high < low
Gap zone:
Lower boundary: high
Upper boundary: low
Each detected FVG is drawn as a colored box (green for bullish, red for bearish in this version, but you can adjust colors in the inputs).
Auto-close rules
An FVG remains on the chart until one of the following happens:
Full fill / mitigation
A bullish FVG closes when any candle’s low goes down to or below the lower boundary of the gap.
A bearish FVG closes when any candle’s high goes up to or above the upper boundary of the gap.
Maximum bar age reached
Each FVG has a maximum lifetime measured in candles.
When the number of candles since its creation reaches the configured maximum (default: 200 bars), the FVG is automatically removed even if it has not been fully filled.
This keeps the chart cleaner and prevents very old gaps from cluttering the view.
Age counter (labels inside the boxes)
Inside every FVG box there is a small label that:
Shows how many bars have passed since the FVG was created.
Moves together with the right edge of the box and stays vertically centered in the gap.
This makes it easy to distinguish fresh gaps from older ones and prioritize which zones you want to pay attention to.
Inputs
FVG color – Main fill color for all FVG boxes.
Show bullish FVGs – Turn bullish gaps on/off.
Show bearish FVGs – Turn bearish gaps on/off.
Max bar age – Maximum number of candles an FVG is allowed to stay on the chart before it is removed.
Usage
Works on any symbol and any timeframe.
Can be combined with your own ICT / SMC concepts, order blocks, session ranges, market structure, etc.
You can also choose to only display bullish or only bearish FVGs depending on your directional bias.
Disclaimer
This script is for educational and informational purposes only and is not financial advice. Always do your own research and use proper risk management when trading.
coinjin 정·역배열 대시보드 (Progress+Events)This script analyzes trend alignment using the 5 / 20 / 60 / 112 / 224 / 448 / 896 SMAs,
providing highly precise detection of bullish and bearish stack conditions,
and identifies 12 advanced trend-reversal signals through a multi-timeframe dashboard.
이 스크립트는 5 / 20 / 60 / 112 / 224 / 448 / 896 SMA 기준으로
정배열·역배열 상태를 매우 정교하게 분석하고,
12가지 고급 추세 전환 시그널을 자동 탐지하는 멀티타임프레임 대시보드입니다.
HTF Hollow Candle overlayoverlays HTF candle ontop of price so you can watch m1 chart filling up an h4 bar
Swing High-Low Line ConnectorSwing High-Low Line Connector is a simple and intuitive tool that automatically detects swing highs and swing lows using fractal-style pivot logic and connects them with clean, continuous lines. This indicator helps traders visualize market structure, trend shifts, and swing-based support/resistance levels at a glance.
The script identifies each confirmed swing point based on a user-defined lookback window (left/right bars). When a new swing is confirmed, the indicator updates the previous leg or creates a new one, effectively drawing the classic “zigzag-style” connections used in discretionary trading and price-action analysis.
A dynamic tail extension is included to show the most recent swing extending toward the current price. By default, the tail follows a ZigZag-style logic—extending upward after a swing low and downward after a swing high—but users can also anchor it to Close, High, Low, or HL2.
Features
Automatic detection of swing highs and swing lows
Clean line connections between swings (similar to discretionary market-structure mapping)
Proper consolidation handling: weaker highs/lows are ignored
Optional ZigZag-style dynamic tail extension
Fully customizable lookback window, line color, and line width
Works on any market and timeframe
Use Cases
Identifying market structure (HH, HL, LH, LL)
Visualizing trend transitions
Spotting breakout levels and swing-based support/resistance
Aiding discretionary swing trading, trend following, or pattern recognition
This indicator keeps the logic simple and visual—ideal for traders who prefer clean chart structure without unnecessary noise.
FVG 3 Candle Detector with Liqui Levels# FVG 3 Candle Detector with Liqui Levels - TradingView Description
---
## 🇬🇧 ENGLISH
### Short Description
Detects Fair Value Gaps (FVGs) after Liquidity Sweeps on multiple timeframes. Combines ICT concepts with Smart Money trading strategies.
### Full Description
**FVG 3 Candle Detector with Liqui Levels** automatically identifies high-probability trading setups by detecting Swing Highs/Lows across three customizable timeframes and drawing Fair Value Gaps after liquidity breaks.
#### 🎯 Key Features
**Multi-Timeframe Swing Detection**
- Real 3-candle swing formation detection (pivot surrounded by lower highs / higher lows)
- Three fully customizable timeframes (default: 5min, 15min, 60min)
- Automatic timeframe hierarchy: higher timeframe always takes priority
**Smart FVG Detection**
- Only draws FVGs in the correct direction after a liquidity sweep
- After High Break → Only bearish FVGs
- After Low Break → Only bullish FVGs
- Customizable number of FVGs per timeframe
**Visual Clarity**
- Color-coded by timeframe (default: Blue/Green/Orange)
- Lines extend until broken by price
- Mitigated levels shown transparently
#### ⚙️ Settings
- **Timeframes:** Freely selectable (e.g., 1min, 5min, 15min, 1H, 4H)
- **Colors:** Customizable per timeframe
- **FVG Count:** Set how many FVGs to draw after each break
- **Mitigation:** Choose between Wick or Close
#### 📈 Best Used On
- Lower timeframes (30s, 1min) for precise entries
- Works on all instruments (Forex, Crypto, Stocks, Futures)
#### 💡 Trading Logic
1. Wait for a swing level to be swept (liquidity grab)
2. Look for FVG formation in the opposite direction
3. Enter on FVG for reversal trade
---
청산맵[by좐주노]//@version=5
indicator("청산맵 "
, overlay = true
, max_lines_count = 500
, max_labels_count = 500
, max_boxes_count = 500)
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
length = input(14, '청산기간 기준 ')
area = input.string('꼬리기준', '측정 범위', options = )
intraPrecision = input(false, 'Intrabar Precision', inline = 'intrabar')
intrabarTf = input.timeframe('1', '' , inline = 'intrabar')
filterOptions = input.string('Count', 'Filter Areas By', options = , inline = 'filter')
filterValue = input.float(0, '' , inline = 'filter')
//Style
showTop = input(true, 'Swing High' , inline = 'top', group = 'Style')
topCss = input(color.red, '' , inline = 'top', group = 'Style')
topAreaCss = input(color.new(color.red, 50), 'Area', inline = 'top', group = 'Style')
showBtm = input(true, 'Swing Low' , inline = 'btm', group = 'Style')
btmCss = input(color.teal, '' , inline = 'btm', group = 'Style')
btmAreaCss = input(color.new(color.teal, 50), 'Area', inline = 'btm', group = 'Style')
labelSize = input.string('Tiny', 'Labels Size', options = , group = 'Style')
//-----------------------------------------------------------------------------}
//Functions
//-----------------------------------------------------------------------------{
n = bar_index
get_data()=>
= request.security_lower_tf(syminfo.tickerid, intrabarTf, get_data())
get_counts(condition, top, btm)=>
var count = 0
var vol = 0.
if condition
count := 0
vol := 0.
else
if intraPrecision
if n > length
if array.size(v ) > 0
for in v
vol += array.get(l , index) < top and array.get(h , index) > btm ? element : 0
else
vol += low < top and high > btm ? volume : 0
count += low < top and high > btm ? 1 : 0
set_label(count, vol, x, y, css, lbl_style)=>
var label lbl = na
var label_size = switch labelSize
'Tiny' => size.tiny
'Small' => size.small
'Normal' => size.normal
target = switch filterOptions
'Count' => count
'Volume' => vol
if ta.crossover(target, filterValue)
lbl := label.new(x, y, str.tostring(vol, format.volume)
, style = lbl_style
, size = label_size
, color = #00000000
, textcolor = css)
if target > filterValue
label.set_text(lbl, str.tostring(vol, format.volume))
set_level(condition, crossed, value, count, vol, css)=>
var line lvl = na
target = switch filterOptions
'Count' => count
'Volume' => vol
if condition
if target < filterValue
line.delete(lvl )
else if not crossed
line.set_x2(lvl, n - length)
lvl := line.new(n - length, value, n, value
, color = na)
if not crossed
line.set_x2(lvl, n+3)
if crossed and not crossed
line.set_x2(lvl, n)
line.set_style(lvl, line.style_dashed)
if target > filterValue
line.set_color(lvl, css)
set_zone(condition, x, top, btm, count, vol, css)=>
var box bx = na
target = switch filterOptions
'Count' => count
'Volume' => vol
if ta.crossover(target, filterValue)
bx := box.new(x, top, x + count, btm
, border_color = na
, bgcolor = css)
if target > filterValue
box.set_right(bx, x + count)
//-----------------------------------------------------------------------------}
//Global variables
//-----------------------------------------------------------------------------{
//Pivot high
var float ph_top = na
var float ph_btm = na
var bool ph_crossed = na
var ph_x1 = 0
var box ph_bx = box.new(na,na,na,na
, bgcolor = color.new(topAreaCss, 80)
, border_color = na)
//Pivot low
var float pl_top = na
var float pl_btm = na
var bool pl_crossed = na
var pl_x1 = 0
var box pl_bx = box.new(na,na,na,na
, bgcolor = color.new(btmAreaCss, 80)
, border_color = na)
//-----------------------------------------------------------------------------}
//Display pivot high levels/blocks
//-----------------------------------------------------------------------------{
ph = ta.pivothigh(length, length)
//Get ph counts
= get_counts(ph, ph_top, ph_btm)
//Set ph area and level
if ph and showTop
ph_top := high
ph_btm := switch area
'Wick Extremity' => math.max(close , open )
'Full Range' => low
ph_x1 := n - length
ph_crossed := false
box.set_lefttop(ph_bx, ph_x1, ph_top)
box.set_rightbottom(ph_bx, ph_x1, ph_btm)
else
ph_crossed := close > ph_top ? true : ph_crossed
if ph_crossed
box.set_right(ph_bx, ph_x1)
else
box.set_right(ph_bx, n+3)
if showTop
//Set ph zone
set_zone(ph, ph_x1, ph_top, ph_btm, ph_count, ph_vol, topAreaCss)
//Set ph level
set_level(ph, ph_crossed, ph_top, ph_count, ph_vol, topCss)
//Set ph label
set_label(ph_count, ph_vol, ph_x1, ph_top, topCss, label.style_label_down)
//-----------------------------------------------------------------------------}
//Display pivot low levels/blocks
//-----------------------------------------------------------------------------{
pl = ta.pivotlow(length, length)
//Get pl counts
= get_counts(pl, pl_top, pl_btm)
//Set pl area and level
if pl and showBtm
pl_top := switch area
'Wick Extremity' => math.min(close , open )
'Full Range' => high
pl_btm := low
pl_x1 := n - length
pl_crossed := false
box.set_lefttop(pl_bx, pl_x1, pl_top)
box.set_rightbottom(pl_bx, pl_x1, pl_btm)
else
pl_crossed := close < pl_btm ? true : pl_crossed
if pl_crossed
box.set_right(pl_bx, pl_x1)
else
box.set_right(pl_bx, n+3)
if showBtm
//Set pl zone
set_zone(pl, pl_x1, pl_top, pl_btm, pl_count, pl_vol, btmAreaCss)
//Set pl level
set_level(pl, pl_crossed, pl_btm, pl_count, pl_vol, btmCss)
//Set pl labels
set_label(pl_count, pl_vol, pl_x1, pl_btm, btmCss, label.style_label_up)
//-----------------------------------------------------------------------------}
MTF EMA Directional Bias -1hr and 4hr A compact, fixed-position table (bottom-right corner) that shows the current slope direction of two higher-timeframe EMAs:
4H EMA 50 → direction over the last 2 bars (UP ↑, DOWN ↓, or FLAT ⏸)
1H EMA 21 → direction over the last 2 bars (UP ↑, DOWN ↓, or FLAT ⏸)
Background color logic:
Green → both 4H and 1H EMAs are sloping upward
Red → both 4H and 1H EMAs are sloping downward
Gray → mixed or flat directions (no confluence)
Additionally draws the actual 1H EMA-21 (purple) and 4H EMA-50 (red) as step-lines on the chart.
1H & 15M Swing Liquidity BSL / SSL (Projected to Lower TFs)I created this script to plot 1H intermediate and 15m short term liquidity on the lower timeframe charts. Works best when used with high timeframe keylevels as a catalyst to move price to these liquidity zones.
Candle Patterns Ver.2When someone decided to start trading the first thing we learn is how to read and understand the candlesticks. This little "boxes" with sticks tell us how the market sentiment and they can be used to "predict" future moves. I put predict inside a quotation marks because I would say predict the market is almost an utopia and we all know the reason.
Anyway with a good understand in reading the candlesticks with other indicators(like momentum or even a MA) can give us some edge when analyzing an instrument.
Since we have a lot of candlesticks types I did some back test and figured out that for my strategy that three candlestick types works very well. I will briefly describe then.
Engulfing Bar
This type of candlestick shows us a potential reversal based on the previous bar.
A bullish Engulfing has the close higher than the open it works better if the previous one is a bearish bar(open higher than close) and it is at a Support level. The body of the Engulfing bar should "engulf" the full body of the previous bar. If all parameters(previous bearish bar at Support level after a downtrend move) this Engulfing will represents a reversal move. When I say reversal it could means a pullback reversal(if the past trend is downtrend) or if the previous downtrend is a pullback from a past uptrend. In any way the previous bearish followed by an bullish Engulfing in general leads for an upward move.
The same picture applies to a previous bullish bar followed by an bearish Engulfing bar that if appears at the Resistance level will lead to a downward move.
One thing that is worth to mention is in a downward(or upward) move we have a small bullish bar followed by a bullish Engulfing this situation may lead to a continuation, not reversal.
Pinbar Bar:
This is another candlestick type that represents possible reversal. The Pinbar candle show a small(or medium) size but the important part is the size of the stick. If the stick is the upper one and has the size of 2 times the size of the body, it is a bearish bars and it appears after an uptrend move it represents that the buyers are losing momentum so we can expect a reversal move. When this type of bar appears after a downward move, it is a bullish bars but the stick is the lower one and has the size of two times of the body it will represents a bullish reversal. In this picture this candle is called a "Hammer".
So based on that I develop an indicator that shows me these 2 bars types and makes easy to identify with the other indicator possible entries.
Please feel free for a constructive comments and hope it help any one whe trading. Candlestick are the fundamentals of Price action.
You all have a great trading new week.
DeltaATR + VWAP DIF + MA'sI attempted to create an indicator using a different approach to analyzing potential trend reversals, and although it is still a work in progress, it is already fully functional. The indicator combines the price relative to VWAP with ATR normalization, providing a way to measure deviations in terms of market volatility.
How the indicator works:
Delta Calculation:
The core of the indicator calculates the difference between the current price and the VWAP (Volume Weighted Average Price), then normalizes this difference by the ATR (Average True Range). This provides a volatility-adjusted measure of how far the price has moved relative to its typical range.
Histogram Visualization:
The deltaATR is displayed as a histogram, where positive values indicate the price is above VWAP and negative values indicate it is below. The histogram is color-coded for easy interpretation: typically red for above VWAP and green for below, with configurable transparency.
Dual Moving Averages:
Two moving averages (fast and slow) are applied to the deltaATR. This creates a crossover system:
When the fast average crosses above the slow average, it may indicate an upcoming bullish reversal.
When the fast average crosses below the slow average, it may indicate a potential bearish reversal.
Zero Line Reference:
A reference line at zero corresponds to VWAP, helping traders see whether price is generally above or below the average volume-weighted level.
Alert Lines (Optional Panel):
A second panel provides four configurable alert lines, allowing users to set key thresholds to monitor extreme deltaATR values. These lines are thin, dashed, and fully customizable in terms of color and thickness.
Panel for Values and Signals:
The indicator includes a side panel showing:
Current deltaATR
Fast and slow averages
Current trend signal (Bullish, Bearish, or Neutral)
How it can be used:
Identify potential trend reversals by monitoring the crossover between the fast and slow averages of deltaATR.
Use the histogram to observe when the price is deviating significantly from VWAP in terms of ATR.
Set alert lines for specific thresholds to highlight overextended conditions or significant volatility moves.
Combine with other technical indicators for confirmation before entering or exiting trades.
This indicator is particularly useful for traders looking to anticipate reversals in volatile markets, as it adapts the delta measure to the current market conditions using ATR normalization, making it more responsive and robust than raw price deviations alone.
MA % Deviation ChannelMA % Deviation Channel — an indicator for measuring price deviation from the moving average
MA % Deviation Channel (MA%DC) is a visual analysis tool that shows how far the current price deviates from a selected moving average, expressed in percentages. The indicator builds dynamic channels based on historical percentage deviations, helping traders identify statistical extremes and use them as potential reversal or continuation zones.
How the indicator works
MA%DC calculates the percentage deviation of High and Low from the chosen MA and stores these values in arrays. Based on the average deviation values, the script plots four key levels:
Avg. High Dev. — average deviation of highs from the MA
Avg. Low Dev. — average deviation of lows from the MA
Avg. Extreme High Dev. — extreme (above-average) deviations of highs
Avg. Extreme Low Dev. — extreme (below-average) deviations of lows
The width of the channel automatically adapts to the selected MA period — the longer the period, the deeper the historical analysis.
Purpose and use cases
MA % Deviation Channel helps:
Evaluate volatility relative to the moving average
Identify overbought and oversold zones based on real price behavior
Filter breakouts and false impulses
Build trend-following and counter-trend strategies using statistical deviations
Advantages
Based on percentage deviation rather than fixed distances
Adaptive to changing market conditions
Supports 5 popular types of moving averages
Settings
MA Source — data source for the moving average
MA Type — moving average type (SMA, EMA, WMA, VWMA, RMA)
MA Length — smoothing period
Visual elements
The moving average line
Average deviation channels
Extreme deviation channels
Color fills between levels for improved readability
SMC BOS/CHoCH + Auto Fib (5m/any TF) durane//@version=6
indicator('SMC BOS/CHoCH + Auto Fib (5m/any TF)', overlay = true, max_lines_count = 200, max_labels_count = 200)
// --------- Inputs ----------
left = input.int(3, 'Pivot Left', minval = 1)
right = input.int(3, 'Pivot Right', minval = 1)
minSwingSize = input.float(0.0, 'Min swing size (price units, 0 = disabled)', step = 0.1)
fib_levels = input.string('0.0,0.236,0.382,0.5,0.618,0.786,1.0', 'Fibonacci levels (comma separated)')
show_labels = input.bool(true, 'Show BOS/CHoCH labels')
lookbackHighLow = input.int(200, 'Lookback for structure (bars)')
// Parse fib levels
strs = str.split(fib_levels, ',')
var array fibs = array.new_float()
if barstate.isfirst
for s in strs
array.push(fibs, str.tonumber(str.trim(s)))
// --------- Find pivot highs / lows ----------
pHigh = ta.pivothigh(high, left, right)
pLow = ta.pivotlow(low, left, right)
// store last confirmed swings
var float lastSwingHighPrice = na
var int lastSwingHighBar = na
var float lastSwingLowPrice = na
var int lastSwingLowBar = na
if not na(pHigh)
// check min size
if minSwingSize == 0 or pHigh - nz(lastSwingLowPrice, pHigh) >= minSwingSize
lastSwingHighPrice := pHigh
lastSwingHighBar := bar_index - right
lastSwingHighBar
if not na(pLow)
if minSwingSize == 0 or nz(lastSwingHighPrice, pLow) - pLow >= minSwingSize
lastSwingLowPrice := pLow
lastSwingLowBar := bar_index - right
lastSwingLowBar
// --------- Detect BOS & CHoCH (simple robust logic) ----------
var int lastBOSdir = 0 // 1 = bullish BOS (price broke above), -1 = bearish BOS
var int lastBOSbar = na
var float lastBOSprice = na
// Look for price closes beyond last structural swings within lookback
// Bullish BOS: close > recent swing high
condBullBOS = not na(lastSwingHighPrice) and close > lastSwingHighPrice and bar_index - lastSwingHighBar <= lookbackHighLow
// Bearish BOS: close < recent swing low
condBearBOS = not na(lastSwingLowPrice) and close < lastSwingLowPrice and bar_index - lastSwingLowBar <= lookbackHighLow
bosTriggered = false
chochTriggered = false
if condBullBOS
bosTriggered := true
if lastBOSdir != 1
// if previous BOS direction was -1, this is CHoCH (change of character)
chochTriggered := lastBOSdir == -1
chochTriggered
lastBOSdir := 1
lastBOSbar := bar_index
lastBOSprice := close
lastBOSprice
if condBearBOS
bosTriggered := true
if lastBOSdir != -1
chochTriggered := lastBOSdir == 1
chochTriggered
lastBOSdir := -1
lastBOSbar := bar_index
lastBOSprice := close
lastBOSprice
// --------- Plot labels for BOS / CHoCH ----------
if bosTriggered and show_labels
if chochTriggered
label.new(bar_index, high, text = lastBOSdir == 1 ? 'CHoCH ↑' : 'CHoCH ↓', style = label.style_label_up, color = color.new(color.orange, 0), textcolor = color.white, yloc = yloc.abovebar)
else
label.new(bar_index, high, text = lastBOSdir == 1 ? 'BOS ↑' : 'BOS ↓', style = label.style_label_left, color = lastBOSdir == 1 ? color.green : color.red, textcolor = color.white, yloc = yloc.abovebar)
// --------- Auto Fibonacci drawing ----------
var array fib_lines = array.new_line()
var array fib_labels = array.new_label()
var int lastFibId = na
// Function to clear previous fibs
f_clear() =>
if array.size(fib_lines) > 0
for i = 0 to array.size(fib_lines) - 1
line.delete(array.get(fib_lines, i))
if array.size(fib_labels) > 0
for i = 0 to array.size(fib_labels) - 1
label.delete(array.get(fib_labels, i))
array.clear(fib_lines)
array.clear(fib_labels)
// Decide anchors for fib: if lastBOSdir==1 (bullish) anchor from lastSwingLow -> lastSwingHigh
// if lastBOSdir==-1 (bearish) anchor from lastSwingHigh -> lastSwingLow
if lastBOSdir == 1 and not na(lastSwingLowPrice) and not na(lastSwingHighPrice)
// bullish fib: low -> high
startPrice = lastSwingLowPrice
endPrice = lastSwingHighPrice
// draw
f_clear()
for i = 0 to array.size(fibs) - 1 by 1
lvl = array.get(fibs, i)
priceLevel = startPrice + (endPrice - startPrice) * lvl
ln = line.new(x1 = lastSwingLowBar, y1 = priceLevel, x2 = bar_index, y2 = priceLevel, xloc = xloc.bar_index, extend = extend.right, color = color.new(color.green, 60), width = 1, style = line.style_solid)
array.push(fib_lines, ln)
lab = label.new(bar_index, priceLevel, text = str.tostring(lvl * 100, '#.0') + '%', style = label.style_label_right, color = color.new(color.green, 80), textcolor = color.white, yloc = yloc.price)
array.push(fib_labels, lab)
if lastBOSdir == -1 and not na(lastSwingHighPrice) and not na(lastSwingLowPrice)
// bearish fib: high -> low
startPrice = lastSwingHighPrice
endPrice = lastSwingLowPrice
f_clear()
for i = 0 to array.size(fibs) - 1 by 1
lvl = array.get(fibs, i)
priceLevel = startPrice + (endPrice - startPrice) * lvl
ln = line.new(x1 = lastSwingHighBar, y1 = priceLevel, x2 = bar_index, y2 = priceLevel, xloc = xloc.bar_index, extend = extend.right, color = color.new(color.red, 60), width = 1, style = line.style_solid)
array.push(fib_lines, ln)
lab = label.new(bar_index, priceLevel, text = str.tostring(lvl * 100, '#.0') + '%', style = label.style_label_right, color = color.new(color.red, 80), textcolor = color.white, yloc = yloc.price)
array.push(fib_labels, lab)
// --------- Optional: plot lastSwing points ----------
plotshape(not na(lastSwingHighPrice) ? lastSwingHighPrice : na, title = 'LastSwingHigh', location = location.absolute, style = shape.triangledown, size = size.tiny, color = color.red, offset = 0)
plotshape(not na(lastSwingLowPrice) ? lastSwingLowPrice : na, title = 'LastSwingLow', location = location.absolute, style = shape.triangleup, size = size.tiny, color = color.green, offset = 0)
// --------- Alerts ----------
alertcondition(bosTriggered and lastBOSdir == 1, title = 'Bullish BOS', message = 'Bullish BOS detected on {{ticker}} @ {{close}}')
alertcondition(bosTriggered and lastBOSdir == -1, title = 'Bearish BOS', message = 'Bearish BOS detected on {{ticker}} @ {{close}}')
alertcondition(chochTriggered, title = 'CHoCH Detected', message = 'CHoCH detected on {{ticker}} @ {{close}}')
// End
Project 1 - Complete with CMF and All IndicatorsProject 1 – Multi-Indicator Suite
This script combines several widely-used technical indicators into a single visual framework.
It is designed to help traders track momentum, trend strength, volume behavior, and money flow without switching between multiple tools.
Included components:
• MACD with dynamic color changes
• RSI with percentage change and directional marker
• ADX with trend-strength shading and Δ% calculation
• CMF (Chaikin Money Flow) with positive/negative flow tracking
• Volume Oscillator for short–long volume pressure
• Auto-updated labels for RSI, ADX, and CMF
• Lightweight visual lines to show momentum changes
Use cases:
• Trend confirmation
• Momentum diagnostics
• Volume-based pressure analysis
• Money-flow direction and strength
• Multi-factor confluence without indicator stacking
This tool does not generate buy/sell signals and does not imply trading outcomes.
It is a visual analytics suite built for discretionary technical analysis.
Defended Price Levels (DPLs) — Melvin Dickover ConceptThis indicator identifies and draws horizontal “Defended Price Levels” (DPLs) exactly as originally described by Melvin E. Dickover in his trading methodology.
Dickover observed that when extreme relative volume and extreme “freedom of movement” (volume-to-price-movement ratio) occur on the same bar, especially on bars with large gaps or unusually large bodies, the closing price (or previous close) of that bar very often becomes a significant future support/resistance level that the market later “defends.”
This script automates the detection of those exact coincident spikes using two well-known public indicators:
Relative Volume (RVI)
• Original idea: Melvin Dickover
• Pine Script implementation used here: “Relative Volume Indicator (Freedom Of Movement)” by LazyBear
Link:
Freedom of Movement (FoM)
• Original idea and calculation: starbolt64
• Pine Script: “Freedom of Movement” by starbolt64
Link:
How this indicator works
Calculates the raw (possibly negative) LazyBear RVI and starbolt64’s exact FoM values
Normalizes and standardizes both over the user-defined lookback
Triggers only when both RVI and FoM exceed the chosen number of standard deviations on the same bar (true Dickover coincident-spike condition)
Applies Dickover’s original price-selection rules (uses current close on big gaps or 2× body expansion candles, otherwise previous close)
Draws a thin maroon horizontal ray only when the new level is sufficiently far from all previously drawn levels (default ≥0.8 %) and the maximum number of levels has not been reached
Keeps the chart clean by limiting the total number of significant defended levels shown
This is not a republish or minor variation of the two source scripts — it is a faithful automation of Melvin Dickover’s specific “defended price line” concept that he manually marked using the coincidence of these two indicators.
Full credit goes to:
Melvin E. Dickover — creator of the Defended Price Levels concept
LazyBear — author of the Relative Volume (RVI) implementation used here
starbolt64 — author of the Freedom of Movement indicator and calculation
Settings (all adjustable):
Standard Deviation Length (default 60)
Spike Threshold in standard deviations (default 2.0)
Minimum distance between levels in % (default 0.8 %)
Maximum significant levels to display (15–80)
Use these horizontal maroon lines as potential future support/resistance zones that the market has previously shown strong willingness to defend.
Thank you to Melvin, LazyBear, and starbolt64 for the original work that made this automation possible.
NICHI Beta (NuwenPham's Ichimoku)# **NuwenPham’s Ichimoku (NICHI)**
**Version BETA.251123a.3.1.2 – Pine Script v6**
**Author:** NuwenPham
**Forked from:** Donovan Wall
**Contributors:** Claude (Anthropic)
**License:** MPL 2.0
---
# **Overview**
**NICHI (Nuwen’s Ichimoku)** is a next-generation Ichimoku system that merges the classical Hosoda Ichimoku with a modular adaptive-smoothing engine, enhanced Kumo logic, directional trend counters, and multi-mode bar coloring.
The indicator includes **two completely separate Ichimoku engines**:
* **Standard Ichimoku** – Traditional Donchian-based Tenkan, Kijun, Senkou A/B, and Chikou
* **Advanced Ichimoku** – Fully customizable Ichimoku using 15+ moving-average filters and enhanced logic
NICHI is designed for modern markets—especially **futures and volatile instruments** (NG, CL, ES, NQ, crypto).
---
# **Key Features**
## **1. Dual Ichimoku Systems**
* **Standard Mode:**
Classic Donchian Ichimoku with Tenkan, Kijun, Senkou A/B, and Chikou.
Clean, faithful implementation.
* **Advanced Mode:**
Every Ichimoku line uses a **selected smoothing filter** (EMA, KAMA, FRAMA, Hull, McGinley, etc.).
Includes directional persistence tracking, enhanced cloud logic, and adaptive bar coloring.
---
## **2. Advanced Filter Engine (15+ Smooth Types)**
Use any of the following for Tenkan, Kijun, Senkou B, or Chikou:
* EMA
* DEMA
* SMA
* SMMA (RMA)
* WMA
* VWMA
* Hull MA
* ALMA
* LSMA (Linear Regression)
* McGinley Dynamic
* KAMA
* FRAMA
* COVWMA
* Moving Median
* 50th Percentile (Nearest Rank)
This transforms Ichimoku into an **adaptive trend system**.
---
## **3. Enhanced Cloud (Kumo) Modeling**
* Independent forward offsets for Span A & Span B
* Cloud colors adapt based on strength, direction, and filter behavior
* Cloud thickness reflects volatility
* Neutral cloud state available when spans disagree
---
## **4. Directional Persistence Counters**
NICHI tracks the **trend streak** of each main component:
* Tenkan rising/falling
* Kijun rising/falling
* Span A rising/falling
* Span B rising/falling
These counters make cloud and line colors more accurate and stable.
---
## **5. Regime-Based Bar Coloring (3 Modes)**
NICHI includes three built-in trading frameworks:
### **Mode 1: Kumo-Based**
Bar color reflects price relative to the cloud:
* Green = Above Kumo
* Red = Below Kumo
* Orange = Inside Kumo
Ideal for **trend-following** and **market regime detection**.
---
### **Mode 2: Tenkan/Kijun-Based**
Bar color reflects momentum structure:
* Green = Price above both Tenkan & Kijun
* Red = Price below both
Designed for **momentum entries and TK breakouts**.
---
### **Mode 3: Chikou-Based**
Bars reflect historical confirmation:
* Green = Chikou > price (offset period)
* Red = Chikou < price
Excellent for **confirmation-first strategies** where accuracy matters most.
---
## **6. Multi-MA Overlay System**
Up to **four optional moving averages**:
* SMA, EMA, SMMA, WMA, HMA, VWMA
* Independent lengths, widths, colors
* Useful for bias, confluence, trend filters
Default: **SMA 200** enabled.
---
## **7. TK Cross Signals**
Both systems show TK crosses:
* Standard TK Cross (classic)
* Advanced TK Cross (filtered version)
Crosses appear with clear markers for entry/exit logic.
---
# **How to Use NICHI**
## **1. Choose Your Engine**
* **Standard:** Clean, classic Ichimoku
* **Advanced:** Adaptive, filter-driven Ichimoku
* **Both:** Comparative analysis
---
## **2. Select Your Filter Type (Advanced Mode)**
Suggested filters:
| Market | Filter Type | Notes |
| ---------------- | ---------------- | -------------------------- |
| Natural Gas (NG) | KAMA or FRAMA | Handles extreme volatility |
| Crude Oil (CL) | McGinley Dynamic | Smooths spikes |
| ES / NQ | SMMA or WMA | Balanced response |
| Crypto | Hull or ALMA | Handles momentum bursts |
| FX | EMA or SMMA | Classic, stable |
---
## **3. Choose a Bar-Color Strategy**
* **Kumo-Based:** Trend following
* **TK-Based:** Momentum and breakouts
* **Chikou-Based:** Highest confirmation/accuracy
Each strategy is valid and intentionally distinct.
---
## **4. Reading the Cloud**
* **Bullish Cloud:** Span A > Span B
* **Bearish Cloud:** Span A < Span B
* **Neutral Cloud:** Disagreement between spans
* **Thick Cloud:** High volatility / stronger structure
* **Thin Cloud:** Weak trend / potential twist
---
## **5. Entry & Exit Concepts**
### **Entries**
* **Momentum Entry:** TK cross with price above the cloud
* **Reversal Entry:** TK cross before a cloud twist
* **Confirmation Entry:** Chikou breaks cleanly above/below past price
### **Exits**
* Price falling through Kijun
* Re-entering the cloud
* Opposite TK cross
* Cloud flipping against position
---
# **Recommended Trading Approaches**
## **Kumo-Based Trend Strategy**
* Long above cloud, short below
* Avoid signals inside cloud
Best for swing/position trading.
---
## **TK-Based Momentum Strategy**
* Enter on Tenkan/Kijun breakout
* Bar color confirms momentum
* Cloud filter optional but helps
Great for high-velocity markets.
---
## **Chikou-Based Confirmation Strategy**
* Enter only when Chikou confirms structure
* Highest accuracy, fewest trades
* Ideal for volatile markets (NG, CL)
---
# **Closing Notes**
NICHI is a **research-grade Ichimoku framework** designed to handle modern volatility where traditional Ichimoku often fails.
It supports scalpers, swing traders, and system developers alike.
Experiment with:
* Filter types
* Cloud offsets
* Bar-color modes
* MA overlays
to match your strategy and market.
Advanced Market Profile & S/R Zones (Pro)Advanced Market Profile & S/R Zones
This indicator brings professional Auction Market Theory to your chart using a custom rolling Volume Profile algorithm. Unlike standard profiles that remain fixed, this tool dynamically calculates the "Fair Value" of the asset based on your specific lookback period (e.g., the last 100 bars).
It automatically highlights the Point of Control (POC), Value Area (VA), and suggests statistical Discount (Buy) and Premium (Sell) zones.
Key Features
Volume Splitting Algorithm:
Most basic scripts dump the entire volume of a candle into a single price point (the average). This script splits the volume across the candle's entire High-Low range. This results in a much smoother, higher-resolution bell curve that accurately reflects price action, especially on higher timeframes like Monthly charts.
Auto-generated Zones:
Green Zone (Discount): Prices below the Value Area Low (VAL). Statistically "cheap."
Red Zone (Premium): Prices above the Value Area High (VAH). Statistically "expensive."
Real-Time Dashboard:
A built-in panel displays the exact price levels for the POC, VAH, and VAL for precise limit order placement, along with the current Market Trend.
How to Use
For Intraday (Day Trading):
Settings: Set Lookback to 100 - 300.
Strategy: Watch for price to open outside the Value Area. If price breaks back inside the Value Area, target the POC (Red Line).
For Macro (Monthly/Weekly Charts):
Settings: Set Lookback to 12 (1 Year) or 60 (5 Years).
Strategy: Identify multi-year structural support. When a monthly candle enters the Green Discount Zone of a 5-year profile, it is often a high-probability institutional entry point.
Trend Logic
The Dashboard indicates trend based on price location relative to value:
Strong Bullish: Price is accepted ABOVE the Value Area.
Strong Bearish: Price is accepted BELOW the Value Area.
Neutral / In VA: Price is chopping inside the Value Area.
Disclaimer
This is a "Rolling Profile." It calculates the profile based on the current lookback window relative to the latest bar. As new bars form, the lookback window shifts, and the profile updates to reflect the new dataset.






















