MNO_2Step_Strategy_MOU_KAKU (Publish-Clear)//@version=5
strategy("MNO_2Step_Strategy_MOU_KAKU (Publish-Clear)", overlay=true, pyramiding=0,
max_labels_count=500, max_lines_count=500,
initial_capital=100000,
default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// =========================
// Inputs
// =========================
emaSLen = input.int(5, "EMA Short (5)")
emaMLen = input.int(13, "EMA Mid (13)")
emaLLen = input.int(26, "EMA Long (26)")
macdFast = input.int(12, "MACD Fast")
macdSlow = input.int(26, "MACD Slow")
macdSignal = input.int(9, "MACD Signal")
macdZeroTh = input.float(0.2, "MOU: MACD near-zero threshold", step=0.05)
volLookback = input.int(5, "Volume MA days", minval=1)
volMinRatio = input.float(1.3, "MOU: Volume ratio min", step=0.1)
volStrong = input.float(1.5, "Strong volume ratio (Breakout/KAKU)", step=0.1)
volMaxRatio = input.float(3.0, "Volume ratio max (filter)", step=0.1)
wickBodyMult = input.float(2.0, "Pinbar: lowerWick >= body*x", step=0.1)
pivotLen = input.int(20, "Resistance lookback", minval=5)
pullMinPct = input.float(5.0, "Pullback min (%)", step=0.1)
pullMaxPct = input.float(15.0, "Pullback max (%)", step=0.1)
breakLookbackBars = input.int(5, "Pullback route: valid bars after break", minval=1)
// --- Breakout route (押し目なし初動ブレイク) ---
useBreakoutRoute = input.bool(true, "Enable MOU Breakout Route (no pullback)")
breakConfirmPct = input.float(0.3, "Break confirm: close > R*(1+%)", step=0.1)
bigBodyLookback = input.int(20, "Break candle body MA length", minval=5)
bigBodyMult = input.float(1.2, "Break candle: body >= MA*mult", step=0.1)
requireCloseNearHigh = input.bool(true, "Break candle: close near high")
closeNearHighPct = input.float(25.0, "Close near high threshold (% of range)", step=1.0)
allowMACDAboveZeroInstead = input.bool(true, "Breakout route: allow MACD GC above zero instead")
// 表示
showEMA = input.bool(true, "Plot EMAs")
showMouLabels = input.bool(true, "Show MOU/MOU-B labels")
showKakuLabels = input.bool(true, "Show KAKU labels")
showDebugTbl = input.bool(true, "Show debug table (last bar)")
showStatusLbl = input.bool(true, "Show status label (last bar always)")
locChoice = input.string("Below Bar", "Label location", options= )
lblLoc = locChoice == "Below Bar" ? location.belowbar : location.abovebar
// =========================
// 必ず決済が起きる設定(投稿クリア用)
// =========================
enableTPSL = input.bool(true, "Enable TP/SL")
tpPct = input.float(2.0, "Take Profit (%)", step=0.1, minval=0.1) // ←投稿クリア向けに近め
slPct = input.float(1.0, "Stop Loss (%)", step=0.1, minval=0.1) // ←投稿クリア向けに近め
maxHoldBars = input.int(30, "Max bars in trade (force close)", minval=1)
entryMode = input.string("MOU or KAKU", "Entry trigger", options= )
// ✅ 保険:トレード0件を避ける(投稿クリア用)
// 1回でもクローズトレードができたら自動で沈黙
publishAssist = input.bool(true, "Publish Assist (safety entry if 0 trades)")
// =========================
// EMA
// =========================
emaS = ta.ema(close, emaSLen)
emaM = ta.ema(close, emaMLen)
emaL = ta.ema(close, emaLLen)
plot(showEMA ? emaS : na, color=color.new(color.yellow, 0), title="EMA 5")
plot(showEMA ? emaM : na, color=color.new(color.blue, 0), title="EMA 13")
plot(showEMA ? emaL : na, color=color.new(color.orange, 0), title="EMA 26")
emaUpS = emaS > emaS
emaUpM = emaM > emaM
emaUpL = emaL > emaL
goldenOrder = emaS > emaM and emaM > emaL
above26_2days = close > emaL and close > emaL
baseTrendOK = (emaUpS and emaUpM and emaUpL) and goldenOrder and above26_2days
// =========================
// MACD
// =========================
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdGC = ta.crossover(macdLine, macdSig)
macdUp = macdLine > macdLine
macdNearZero = math.abs(macdLine) <= macdZeroTh
macdGCAboveZero = macdGC and macdLine > 0 and macdSig > 0
macdMouOK = macdGC and macdNearZero and macdUp
macdBreakOK = allowMACDAboveZeroInstead ? (macdMouOK or macdGCAboveZero) : macdMouOK
// =========================
// Volume
// =========================
volMA = ta.sma(volume, volLookback)
volRatio = volMA > 0 ? (volume / volMA) : na
volumeMouOK = volRatio >= volMinRatio and volRatio <= volMaxRatio
volumeStrongOK = volRatio >= volStrong and volRatio <= volMaxRatio
// =========================
// Candle patterns
// =========================
body = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
pinbar = (lowerWick >= wickBodyMult * body) and (lowerWick > upperWick) and (close >= open)
bullEngulf = close > open and close < open and close >= open and open <= close
bigBull = close > open and open < emaM and close > emaS and (body > ta.sma(body, 20))
candleOK = pinbar or bullEngulf or bigBull
// =========================
// Resistance / Pullback route
// =========================
res = ta.highest(high, pivotLen)
pullbackPct = res > 0 ? (res - close) / res * 100.0 : na
pullbackOK = pullbackPct >= pullMinPct and pullbackPct <= pullMaxPct
brokeRes = ta.crossover(close, res )
barsSinceBreak = ta.barssince(brokeRes)
afterBreakZone = (barsSinceBreak >= 0) and (barsSinceBreak <= breakLookbackBars)
pullbackRouteOK = afterBreakZone and pullbackOK
// =========================
// Breakout route (押し目なし初動ブレイク)
// =========================
breakConfirm = close > res * (1.0 + breakConfirmPct / 100.0)
bullBreak = close > open
bodyMA = ta.sma(body, bigBodyLookback)
bigBodyOK = bodyMA > 0 ? (body >= bodyMA * bigBodyMult) : false
rng = math.max(high - low, syminfo.mintick)
closeNearHighOK = not requireCloseNearHigh ? true : ((high - close) / rng * 100.0 <= closeNearHighPct)
mou_breakout = useBreakoutRoute and baseTrendOK and breakConfirm and bullBreak and bigBodyOK and closeNearHighOK and volumeStrongOK and macdBreakOK
mou_pullback = baseTrendOK and volumeMouOK and candleOK and macdMouOK and pullbackRouteOK
mou = mou_pullback or mou_breakout
// =========================
// KAKU (Strict): 8条件 + 最終三点
// =========================
cond1 = emaUpS and emaUpM and emaUpL
cond2 = goldenOrder
cond3 = above26_2days
cond4 = macdGCAboveZero
cond5 = volumeMouOK
cond6 = candleOK
cond7 = pullbackOK
cond8 = pullbackRouteOK
all8_strict = cond1 and cond2 and cond3 and cond4 and cond5 and cond6 and cond7 and cond8
final3 = pinbar and macdGCAboveZero and volumeStrongOK
kaku = all8_strict and final3
// =========================
// Entry (strategy)
// =========================
entrySignal = entryMode == "KAKU only" ? kaku : (mou or kaku)
canEnter = strategy.position_size == 0
newEntryKaku = canEnter and kaku and entrySignal
newEntryMouB = canEnter and (not kaku) and mou_breakout and entrySignal
newEntryMou = canEnter and (not kaku) and mou_pullback and entrySignal
// --- Publish Assist(保険エントリー) ---
// 条件が厳しすぎて「トレード0件」だと投稿時に警告が出る。
// closedtradesが0の間だけ、軽いEMAクロスで1回だけ拾う(その後は沈黙)。
assistFast = ta.ema(close, 5)
assistSlow = ta.ema(close, 20)
assistEntry = publishAssist and strategy.closedtrades == 0 and canEnter and ta.crossover(assistFast, assistSlow)
// 実エントリー
if newEntryKaku or newEntryMouB or newEntryMou or assistEntry
strategy.entry("LONG", strategy.long)
// ラベル(視認)
if showMouLabels and newEntryMou
label.new(bar_index, low, "猛(IN)", style=label.style_label_up, color=color.new(color.lime, 0), textcolor=color.black)
if showMouLabels and newEntryMouB
label.new(bar_index, low, "猛B(IN)", style=label.style_label_up, color=color.new(color.lime, 0), textcolor=color.black)
if showKakuLabels and newEntryKaku
label.new(bar_index, low, "確(IN)", style=label.style_label_up, color=color.new(color.yellow, 0), textcolor=color.black)
if assistEntry
label.new(bar_index, low, "ASSIST(IN)", style=label.style_label_up, color=color.new(color.aqua, 0), textcolor=color.black)
// =========================
// Exit (TP/SL + 強制クローズ)
// =========================
inPos = strategy.position_size > 0
tpPx = inPos ? strategy.position_avg_price * (1.0 + tpPct/100.0) : na
slPx = inPos ? strategy.position_avg_price * (1.0 - slPct/100.0) : na
if enableTPSL
strategy.exit("TP/SL", from_entry="LONG", limit=tpPx, stop=slPx)
// 最大保有バーで強制決済(これが「レポート無し」回避の最後の保険)
var int entryBar = na
if strategy.position_size > 0 and strategy.position_size == 0
entryBar := bar_index
if strategy.position_size == 0
entryBar := na
forceClose = inPos and not na(entryBar) and (bar_index - entryBar >= maxHoldBars)
if forceClose
strategy.close("LONG")
// =========================
// 利確/損切/強制クローズのラベル
// =========================
closedThisBar = (strategy.position_size > 0) and (strategy.position_size == 0)
avgPrev = strategy.position_avg_price
tpPrev = avgPrev * (1.0 + tpPct/100.0)
slPrev = avgPrev * (1.0 - slPct/100.0)
hitTP = closedThisBar and high >= tpPrev
hitSL = closedThisBar and low <= slPrev
// 同一足TP/SL両方は厳密に判断できないので、表示は「TP優先」で簡略(投稿ギリギリ版)
if hitTP
label.new(bar_index, high, "利確", style=label.style_label_down, color=color.new(color.lime, 0), textcolor=color.black)
else if hitSL
label.new(bar_index, low, "損切", style=label.style_label_up, color=color.new(color.red, 0), textcolor=color.white)
else if closedThisBar and forceClose
label.new(bar_index, close, "時間決済", style=label.style_label_left, color=color.new(color.gray, 0), textcolor=color.white)
// =========================
// Signals (猛/猛B/確)
// =========================
plotshape(showMouLabels and mou_pullback and not kaku, title="MOU_PULLBACK", style=shape.labelup, text="猛",
color=color.new(color.lime, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showMouLabels and mou_breakout and not kaku, title="MOU_BREAKOUT", style=shape.labelup, text="猛B",
color=color.new(color.lime, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showKakuLabels and kaku, title="KAKU", style=shape.labelup, text="確",
color=color.new(color.yellow, 0), textcolor=color.black, location=lblLoc, size=size.small)
// =========================
// Alerts
// =========================
alertcondition(mou, title="MNO_MOU", message="MNO: MOU triggered")
alertcondition(mou_breakout, title="MNO_MOU_BREAKOUT", message="MNO: MOU Breakout triggered")
alertcondition(mou_pullback, title="MNO_MOU_PULLBACK", message="MNO: MOU Pullback triggered")
alertcondition(kaku, title="MNO_KAKU", message="MNO: KAKU triggered")
alertcondition(assistEntry, title="MNO_ASSIST_ENTRY", message="MNO: ASSIST ENTRY (publish safety)")
// =========================
// Status label(最終足に必ず表示)
// =========================
var label status = na
if showStatusLbl and barstate.islast
label.delete(status)
statusTxt =
"MNO RUNNING " +
"ClosedTrades: " + str.tostring(strategy.closedtrades) + " " +
"BaseTrend: " + (baseTrendOK ? "OK" : "NO") + " " +
"MOU: " + (mou ? "YES" : "no") + " (猛=" + (mou_pullback ? "Y" : "n") + " / 猛B=" + (mou_breakout ? "Y" : "n") + ") " +
"KAKU: " + (kaku ? "YES" : "no") + " " +
"VolRatio: " + (na(volRatio) ? "na" : str.tostring(volRatio, format.mintick)) + " " +
"Pull%: " + (na(pullbackPct) ? "na" : str.tostring(pullbackPct, format.mintick)) + " " +
"Pos: " + (inPos ? "IN" : "OUT")
status := label.new(bar_index, high, statusTxt, style=label.style_label_left, textcolor=color.white, color=color.new(color.black, 0))
// =========================
// Debug table(最終足のみ)
// =========================
var table t = table.new(position.top_right, 2, 14, border_width=1, border_color=color.new(color.white, 60))
fRow(_name, _cond, _r) =>
bg = _cond ? color.new(color.lime, 70) : color.new(color.red, 80)
tx = _cond ? "OK" : "NO"
table.cell(t, 0, _r, _name, text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(t, 1, _r, tx, text_color=color.white, bgcolor=bg)
if showDebugTbl and barstate.islast
table.cell(t, 0, 0, "MNO Debug", text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(t, 1, 0, "", text_color=color.white, bgcolor=color.new(color.black, 0))
fRow("BaseTrend", baseTrendOK, 1)
fRow("MOU Pullback", mou_pullback, 2)
fRow("MOU Breakout", mou_breakout, 3)
fRow("Break confirm", breakConfirm, 4)
fRow("Break big body", bigBodyOK, 5)
fRow("Break close high", closeNearHighOK, 6)
fRow("Break vol strong", volumeStrongOK, 7)
fRow("Break MACD", macdBreakOK, 8)
fRow("KAKU all8", all8_strict, 9)
fRow("KAKU final3", final3, 10)
fRow("AssistEntry", assistEntry, 11)
fRow("ClosedTrades>0", strategy.closedtrades > 0, 12)
Candlestick analysis
COIN-Clean Market Structure & Trend Confirmation TP(Updated)COIN-Clean Market Structure & Trend Confirmation TP(Updated) — COIN (Simple Trend + Buy/Sell Confirmation + Take-Profit Targets)
This indicator is designed to help you trade COIN by clearly showing trend direction, confirmation signals, and predefined take-profit levels. It removes guesswork and helps you stay on the right side of the move.
HOW TO LOAD
Add the indicator to a COIN chart. Turn on Extended Hours for best results. The default settings are already optimized and do not need to be changed.
THE RIBBON (WHAT TO TRADE)
The ribbon shows the overall trend.
Teal ribbon = price is trending up (look for BUY setups).
Red ribbon = price is trending down (look for SELL setups).
Gray ribbon = no clear trend (do not trade).
If the ribbon is gray, the indicator will block signals to protect you from choppy markets.
BULL AND BEAR DOTS (TREND CHANGE ALERTS)
Bull dot appears when the trend turns bullish.
Bear dot appears when the trend turns bearish.
These dots are early warnings, not entries. Always wait for a BUY or SELL arrow before taking a trade.
BUY AND SELL ARROWS (WHEN TO ENTER)
BUY arrows appear only when conditions strongly favor upward movement.
SELL arrows appear only when conditions strongly favor downward movement.
These arrows are confirmation signals. Enter only after the arrow appears.
Not every move will get a signal. Fewer, higher-quality signals are intentional.
OPENING BIAS (FIRST MINUTES PROTECTION)
Right after the market opens, the indicator sets a directional bias.
During this time, it will only allow trades in the safer direction.
This helps avoid getting chopped up during the opening volatility.
TAKE-PROFIT TARGETS AND STOP
When a BUY or SELL arrow appears, take-profit levels automatically show on the chart:
TP1, TP2, and TP3 are profit targets.
STOP is where the trade is considered wrong.
You can scale out at each target or exit fully at any level.
Only the most recent targets are shown to keep the chart clean.
SIMPLE WAY TO USE IT
Check the ribbon color (teal or red).
Ignore the chart if the ribbon is gray.
Wait for a BUY or SELL arrow.
Use the take-profit targets and stop provided.
Do not chase moves without arrows.
IMPORTANT NOTES
This indicator does not repaint confirmed signals.
It is meant to keep trading simple and disciplined.
It works best during strong trend days, not sideways markets.
Wavelet Candle Constructor (Inc. Morlet) 2Here is the detailed description of the **Wavelet Candle** construction principles based on the code provided.
This indicator is not a simple smoothing mechanism (like a Moving Average). It utilizes the **Discrete Wavelet Transform (DWT)**, specifically the Stationary variant (SWT / à Trous Algorithm), to separate "noise" (high frequencies) from the "trend" (low frequencies).
Here is how it works step-by-step:
###1. The Wavelet Kernel (Coefficients)The heart of the algorithm lies in the coefficients (the `h` array in the `get_coeffs` function). Each wavelet type represents a different set of mathematical weights that define how price data is analyzed:
* **Haar:** The simplest wavelet. It acts like a simple average of neighboring candles. It reacts quickly but produces a "boxy" or "jagged" output.
* **Daubechies 4:** An asymmetric wavelet. It is better at detecting sudden trend changes and the fractal structure of the market, though it introduces a slight phase shift.
* **Symlet / Coiflet:** More symmetric than Daubechies. They attempt to minimize lag (phase shift) while maintaining smoothness.
* **Morlet (Gaussian):** Implemented in this code as a Gaussian approximation (bell curve). It provides the smoothest, most "organic" effect, ideal for filtering noise without jagged edges.
###2. The Convolution EngineInstead of a simple average, the code performs a mathematical operation called **convolution**:
For every candle on the chart, the algorithm takes past prices, multiplies them by the Wavelet Kernel weights, and sums them up. This acts as a **digital low-pass filter**—it allows the main price movements to pass through while cutting out the noise.
###3. The "à Trous" Algorithm (Stationary Wavelet Transform)This is the key difference between this indicator and standard data compression.
In a classic wavelet transform, every second data point is usually discarded (downsampling). Here, the **Stationary** approach is used:
* **Level 1:** Convolution every **1** candle.
* **Level 2:** Convolution every **2** candles (skipping one in between).
* **Level 3:** Convolution every **4** candles.
* **Level 4:** Convolution every **8** candles.
Because of this, **we do not lose time resolution**. The Wavelet Candle is drawn exactly where the original candle is, but it represents the trend structure from a broader perspective. The higher the `Decomposition Level`, the deeper the denoising (looking at a wider context).
###4. Independent OHLC ProcessingThe algorithm processes each component of the candle separately:
1. Filters the **Open** series.
2. Filters the **High** series.
3. Filters the **Low** series.
4. Filters the **Close** series.
This results in four smoothed curves: `w_open`, `w_high`, `w_low`, `w_close`.
###5. Geometric Reconstruction (Logic Repair)Since each price series is filtered independently, the mathematics can sometimes lead to physically impossible situations (e.g., the smoothed `Low` being higher than the smoothed `High`).
The code includes a repair section:
```pinescript
real_high = math.max(w_high, w_low)
real_high := math.max(real_high, math.max(w_open, w_close))
// Same logic for Low (math.min)
```
This guarantees that the final Wavelet Candle always has a valid construction: wicks encapsulate the body, and the `High` is strictly the highest point.
---
###Summary of ApplicationThis construction makes the Wavelet Candle an **excellent trend-following tool**.
* If the candle is **green**, it means that after filtering the noise (according to the selected wavelet), the market energy is bullish.
* If it is **red**, the energy is bearish.
* The wicks show volatility that exists within the bounds of the selected decomposition level.
Here is a descriptive comparison of **Wavelet Candles** against other popular chart types. As requested, this is a narrative explanation focusing on the differences in mechanics, interpretation philosophy, and the specific pros and cons of each approach.
---
###1. Wavelet Candles vs. Standard (Japanese) CandlesThis is a clash between "the raw truth" and "mathematical interpretation." Standard Japanese candles display raw market data—exactly what happened on the exchange. Wavelet Candles are a synthetic image created by a signal processor.
**Differences and Philosophy:**
A standard candle is full of emotion and noise. Every single price tick impacts its shape. The Wavelet Candle treats this noise as interference that must be removed to reveal the true energy of the trend. Wavelets decompose the price, reject high frequencies (noise), and reconstruct the candle using only low frequencies (the trend).
* **Wavelet Advantages:** The main advantage is clarity. Where a standard chart shows a series of confusing candles (e.g., a long green one, followed by a short red one, then a doji), the Wavelet Candle often draws a smooth, uniform wave in a single color. This makes it psychologically easier to hold a position and ignore temporary pullbacks.
* **Wavelet Disadvantages:** The biggest drawback is the loss of price precision. The Open, Close, High, and Low values on a Wavelet candle are calculated, not real. You **cannot** place Stop Loss orders or enter trades based on these levels, as the actual market price might be in a completely different place than the smoothed candle suggests. They also introduce lag, which depends on the chosen wavelet—whereas a standard candle reacts instantly.
###2. Wavelet Candles vs. Heikin AshiThese are close cousins, but they share very different "DNA." Both methods aim to smooth the trend, but they achieve it differently.
**Differences and Philosophy:**
Heikin Ashi (HA) is based on a simple recursive arithmetic average. The current HA candle depends on the previous one, making it react linearly.
The Wavelet Candle uses **convolution**. This means the shape of the current candle depends on a "window" (group) of past candles multiplied by weights (Gaussian curve, Daubechies, etc.). This results in a more "organic" and elastic reaction.
* **Wavelet Advantages:** Wavelets are highly customizable. With Heikin Ashi, you are stuck with one algorithm. With Wavelet Candles, you can change the kernel to "Haar" for a fast (boxy) reaction or "Morlet" for an ultra-smooth, wave-like effect. Wavelets handle the separation of market cycles better than simple HA averaging, which can generate many false color flips during consolidation.
* **Wavelet Disadvantages:** They are computationally much more complex and harder to understand intuitively ("Why is this candle red if the price is going up?"). In strong, vertical breakouts (pumps), Heikin Ashi often "chases" the price faster, whereas deep wavelet decomposition (High Level) may show more inertia and change color more slowly.
###3. Wavelet Candles vs. RenkoThis compares two different dimensions: Time vs. Price.
**Differences and Philosophy:**
Renko completely ignores time. A new brick is formed only when the price moves by a specific amount. If the market stands still for 5 hours, nothing happens on a Renko chart.
The Wavelet Candle is **time-synchronous**. If the market stands still for 5 hours, the Wavelet algorithm will draw a series of flat, small candles (the "wavelet decays").
* **Wavelet Advantages:** They preserve the context of time, which is crucial for traders who consider trading sessions (London/New York) or macroeconomic data releases. On a wavelet chart, you can see when volatility drops (candles become small), whereas Renko hides periods of stagnation, which can be misleading for options traders or intraday strategies.
* **Wavelet Disadvantages:** In sideways trends (chop), Wavelet Candles—despite the smoothing—will still draw a "snake" that flips colors (unless you set a very high decomposition level). Renko can remain perfectly clean and static during the same period, not drawing any new bricks, which for many traders is the ultimate filter against overtrading in a flat market.
###Summary**Wavelet Candles** are a tool for the analyst who wants to visualize the **structure of the wave and market cycle**, accepting some lag in exchange for noise reduction, but without giving up the time axis (like in Renko) or relying on simple averaging (like in Heikin Ashi). It serves best as a "roadmap" for the trend rather than a "sniper scope" for precise entries.
HIGH BULLISH PROBABILITY SIGNAL Based on Ema, rsi, adr, volume we will determine if the stock is going to explode.
NY LONDON LUNCH AUTO**NY London Lunch Auto** is a precision session-anchor indicator designed for traders who focus on institutional timing and liquidity behavior.
This script automatically marks the **high and low of three key 15-minute New York session candles**:
• **3:00 AM NY** — London session expansion
• **8:00 AM NY** — New York open / kill zone
• **2:00 PM NY** — NY lunch / power hour transition
Each time one of these candles prints on the **15-minute chart**, the script captures its exact high and low and extends them forward as horizontal levels.
The levels remain **locked and unchanged** until the next key session candle appears, ensuring clean, non-repainting reference zones.
### Key Features
• Works **exclusively on the 15-minute timeframe**
• Automatically updates at **3AM, 8AM, and 2PM NY time**
• Levels stay fixed — no drifting or recalculation
• Clean, minimal design with customizable colors
• Ideal for liquidity sweeps, displacement, and ICT-style execution models
This indicator is built for traders who want **clarity, patience, and structure**, not clutter. It pairs seamlessly with liquidity sweep, displacement, and fair value gap strategies.
Wavelet Candlestick Slope Follower-Master Edition Here is a short description of this script:
This is a **Trend Following strategy** that utilizes advanced mathematics—the **Wavelet Transform**—to filter out market noise.
**Key Features:**
1. **Synthetic Candles:** The script does not analyze raw prices. Instead, it constructs "Wavelet Candles"—smoothed candles created through mathematical convolution of prices with a specific wavelet "kernel" (e.g., Mexican Hat, Morlet, Haar).
2. **Auto-Correction (Normalization):** This is the most critical technical feature of this code. The script automatically normalizes the weights. This ensures that even when using complex mathematical shapes (like the Mexican Hat), the output price remains accurate to the real chart scale and is not distorted.
3. **Strategy Logic:** The logic is very straightforward—the system enters a **Long** position when the smoothed closing price (`w_close`) is rising, and closes the position when it starts to fall.
4. **Visualization:** It draws new, cleaner candles (green/red) on the chart, revealing the "true" trend structure after filtering out temporary fluctuations.
This is a example of use idea of wavelet candle
SCOTTGO - RVOL Bull/Bear Painter (Real-Time) SCOTTGO - RVOL Bull/Bear Painter (Real-Time Momentum Detection)
📌Overview
The RVOL Bull/Bear Painter is a Pine Script indicator designed to instantly highlight high-momentum candles driven by significant Relative Volume (RVOL).
It provides a clear visual signal (bar color, shape, and label) when a candle's volume exceeds its average by a user-defined threshold, confirming strong bullish or bearish interest in real-time. This helps traders quickly identify potential institutional accumulation/distribution or breakout/breakdown attempts.
✨ Key Features
Relative Volume (RVOL) Calculation: Automatically calculates the ratio of the current bar's volume to its moving average (SMA or EMA) over a customizable lookback period.
Momentum Confirmation: Paints the candle green (bullish) or red (bearish) only when both price direction and high RVOL criteria are met.
Real-Time Detection: Uses a plotshape method to display the signal triangle as soon as the RVOL and direction conditions are met on the currently forming candle, aiming for faster alerts than bar-close coloring.
Customizable Threshold: Easily adjust the RVOL multiplier (e.g., 1.5x, 2.0x, 3.0x) to filter out noise and only focus on truly significant volume events.
Labels and Alerts: Displays a volume multiplier label (e.g., BULL 2.55x) and includes pre-configured alert conditions for automated notifications.
🛠️ How to Use It
1. Identify High-Conviction Moves
Look for the painted candles and the corresponding labels. A candle painted green with a BULL label (e.g., BULL 2.5x) indicates that buyers stepped in with 2.5 times the typical volume to drive the price higher.
2. Configure Your Sensitivity
The power of the script lies in customizing the inputs:
RVOL Lookback Period: Determines the length of the volume moving average.
Shorter periods (e.g., 9-20) make the indicator more reactive to recent volume changes.
Longer periods (e.g., 50-200) require a much larger volume spike to trigger a signal.
RVOL Threshold: This is the multiplier.
Lower values (e.g., 1.5) will generate more signals.
Higher values (e.g., 3.0) will generate fewer, but generally higher-conviction, signals.
3. Set Up Alerts
Use the pre-configured alert conditions (Bullish RVOL Signal and Bearish RVOL Signal) in TradingView's alert menu. Crucially, set the alert frequency to "Once per bar" or "Once per minute" to receive notifications as soon as the high RVOL event occurs, without waiting for the bar to close.
GS Volume Truth Serum (With Alerts)this tells you when institutions are behind a move and its not a bull trap
Raeinex Momentum Liquidity IndexEntry arrow signals with volumetric momentum (buying and selling pressure) and the possibility to use all entry signals as liquidity area for price retest.
Multi-Trend + Credit Risk DashboardHello This is showing 20,50,200 as well as some other useful indicators. hope you like it, its my first! D and P is discount or premium to nav
takeshi MNO_2Step_Screener_MOU_MOUB_KAKU//@version=5
indicator("MNO_2Step_Screener_MOU_MOUB_KAKU", overlay=true, max_labels_count=500, max_lines_count=500)
// =========================
// Inputs
// =========================
emaSLen = input.int(5, "EMA Short (5)", minval=1)
emaMLen = input.int(13, "EMA Mid (13)", minval=1)
emaLLen = input.int(26, "EMA Long (26)", minval=1)
macdFast = input.int(12, "MACD Fast", minval=1)
macdSlow = input.int(26, "MACD Slow", minval=1)
macdSignal = input.int(9, "MACD Signal", minval=1)
macdZeroTh = input.float(0.2, "MOU: MACD near-zero threshold", step=0.05)
volDays = input.int(5, "Volume avg (days equivalent)", minval=1)
volMinRatio = input.float(1.3, "MOU: Volume ratio min", step=0.1)
volStrong = input.float(1.5, "Strong volume ratio (MOU-B/KAKU)", step=0.1)
volMaxRatio = input.float(3.0, "Volume ratio max (filter)", step=0.1)
wickBodyMult = input.float(2.0, "Pinbar: lowerWick >= body*x", step=0.1)
pivotLen = input.int(20, "Resistance lookback", minval=5)
pullMinPct = input.float(5.0, "Pullback min (%)", step=0.1)
pullMaxPct = input.float(15.0, "Pullback max (%)", step=0.1)
breakLookbackBars = input.int(5, "Valid bars after break", minval=1)
showEMA = input.bool(true, "Plot EMAs")
showLabels = input.bool(true, "Show labels (猛/猛B/確)")
showShapes = input.bool(true, "Show shapes (猛/猛B/確)")
confirmOnClose = input.bool(true, "Signal only on bar close (recommended)")
locChoice = input.string("Below", "Label location", options= )
lblLoc = locChoice == "Below" ? location.belowbar : location.abovebar
// =========================
// EMA
// =========================
emaS = ta.ema(close, emaSLen)
emaM = ta.ema(close, emaMLen)
emaL = ta.ema(close, emaLLen)
plot(showEMA ? emaS : na, color=color.new(color.yellow, 0), title="EMA 5")
plot(showEMA ? emaM : na, color=color.new(color.blue, 0), title="EMA 13")
plot(showEMA ? emaL : na, color=color.new(color.orange, 0), title="EMA 26")
emaUpS = emaS > emaS
emaUpM = emaM > emaM
emaUpL = emaL > emaL
goldenOrder = emaS > emaM and emaM > emaL
above26_2bars = close > emaL and close > emaL
baseTrendOK = (emaUpS and emaUpM and emaUpL) and goldenOrder and above26_2bars
// =========================
// MACD
// =========================
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdGC = ta.crossover(macdLine, macdSig)
macdUp = macdLine > macdLine
macdNearZero = math.abs(macdLine) <= macdZeroTh
macdGCAboveZero = macdGC and macdLine > 0 and macdSig > 0
macdMouOK = macdGC and macdNearZero and macdUp
macdKakuOK = macdGCAboveZero
// =========================
// Volume (days -> bars)
// =========================
sec = timeframe.in_seconds(timeframe.period)
barsPerDay = (sec > 0 and sec < 86400) ? math.round(86400 / sec) : 1
volLookbackBars = math.max(1, volDays * barsPerDay)
volMA = ta.sma(volume, volLookbackBars)
volRatio = volMA > 0 ? (volume / volMA) : na
volumeMouOK = not na(volRatio) and volRatio >= volMinRatio and volRatio <= volMaxRatio
volumeStrongOK = not na(volRatio) and volRatio >= volStrong and volRatio <= volMaxRatio
// =========================
// Candle patterns
// =========================
body = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
pinbar = (body > 0) and (lowerWick >= wickBodyMult * body) and (lowerWick > upperWick) and (close >= open)
bullEngulf = close > open and close < open and close >= open and open <= close
bigBull = close > open and open < emaM and close > emaS and (body > ta.sma(body, 20))
candleOK = pinbar or bullEngulf or bigBull
// =========================
// Resistance / Pullback route
// =========================
res = ta.highest(high, pivotLen)
pullbackPct = res > 0 ? (res - close) / res * 100.0 : na
pullbackOK = not na(pullbackPct) and pullbackPct >= pullMinPct and pullbackPct <= pullMaxPct
brokeRes = ta.crossover(close, res )
barsSinceBreak = ta.barssince(brokeRes)
afterBreakZone = (barsSinceBreak >= 0) and (barsSinceBreak <= breakLookbackBars)
pullbackRouteOK = afterBreakZone and pullbackOK
// =========================
// Signals (猛 / 猛B / 確)
// =========================
mou_pullback = baseTrendOK and volumeMouOK and candleOK and macdMouOK and pullbackRouteOK
mou_breakout = baseTrendOK and ta.crossover(close, res ) and volumeStrongOK and macdKakuOK
cond1 = emaUpS and emaUpM and emaUpL
cond2 = goldenOrder
cond3 = above26_2bars
cond4 = macdKakuOK
cond5 = volumeMouOK
cond6 = candleOK
cond7 = pullbackOK
cond8 = pullbackRouteOK
all8 = cond1 and cond2 and cond3 and cond4 and cond5 and cond6 and cond7 and cond8
final3 = pinbar and macdKakuOK and volumeStrongOK
kaku = all8 and final3
// 確優先(同一足は確だけ出す)
confirmed = confirmOnClose ? barstate.isconfirmed : true
sigKAKU = kaku and confirmed
sigMOU = mou_pullback and not kaku and confirmed
sigMOUB = mou_breakout and not kaku and confirmed
// =========================
// Visualization
// =========================
if showLabels and sigMOU
label.new(bar_index, low, "猛", style=label.style_label_up, color=color.new(color.lime, 0), textcolor=color.black)
if showLabels and sigMOUB
label.new(bar_index, low, "猛B", style=label.style_label_up, color=color.new(color.green, 0), textcolor=color.black)
if showLabels and sigKAKU
label.new(bar_index, low, "確", style=label.style_label_up, color=color.new(color.yellow, 0), textcolor=color.black)
plotshape(showShapes and sigMOU, title="MOU", style=shape.labelup, text="猛", color=color.new(color.lime, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showShapes and sigMOUB, title="MOUB", style=shape.labelup, text="猛B", color=color.new(color.green, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showShapes and sigKAKU, title="KAKU", style=shape.labelup, text="確", color=color.new(color.yellow, 0), textcolor=color.black, location=lblLoc, size=size.small)
// =========================
// Alerts
// =========================
alertcondition(sigMOU, title="MNO_MOU", message="MNO: 猛(押し目)")
alertcondition(sigMOUB, title="MNO_MOU_BREAKOUT", message="MNO: 猛B(ブレイク)")
alertcondition(sigKAKU, title="MNO_KAKU", message="MNO: 確(最終)")
alertcondition(sigMOU or sigMOUB or sigKAKU, title="MNO_ALL", message="MNO: 猛/猛B/確 いずれか")
HydraBot v1.2 publicenglish description english description english description english description english description english description english description english description english description
Sustained 200 SMA Cross (Locked to Daily)For individuals looking to track trend changes against the 200 day simple moving average. We are measuring 5 consecutive days changing from the above or below the 200 day SMA as a flag for a potential shift in trend.
Engulfing Candles Detector (Shapes)Engulfing Candles Detector (Shapes) just a simple modified for shapes insted of bar color
STUDENT WYCKOFF Volume ClimaxSTUDENT WYCKOFF Volume Climax highlights potential buying and selling climaxes by combining abnormally high volume with wide spread bars.
It is a simple Wyckoff-style tool that helps you see where effort (volume) and result (spread) reached extreme levels and may signal exhaustion or stopping action.
━━━━━━━━━━
1. Concept
━━━━━━━━━━
The script looks for bars where:
• Volume is many times higher than its recent average.
• The spread (high–low range) is much wider than usual.
• The candle has a real body (not a tiny doji).
• The bar is fully confirmed (closed).
Such bars are marked as:
• **BC (Buying Climax)** – wide up bar on very high volume.
• **SC (Selling Climax)** – wide down bar on very high volume.
The idea is not to call exact tops or bottoms, but to mark places on the chart where effort and result spike together, so you can then judge context, background and next bars in the Wyckoff sense.
━━━━━━━━━━
2. How the indicator works
━━━━━━━━━━
Inputs:
• Volume lookback – number of bars used for the average volume.
• Spread lookback – number of bars used for the average spread (high–low).
• Volume multiplier – how many times above the average volume a bar must reach to be considered “climactic”.
• Spread multiplier – how many times above the average spread the bar’s range must be.
• Min body / spread – minimum body size as a fraction of spread (0–1) to filter out near-doji candles.
Internally the script calculates:
• Range = high − low.
• Average volume = SMA(volume, volume lookback).
• Average spread = SMA(range, spread lookback).
• Body fraction = |close − open| / range.
A bar is a **climax bar** only if:
1) Volume > averageVolume × volumeMultiplier,
2) Spread > averageSpread × spreadMultiplier,
3) BodyFraction ≥ Min body / spread,
4) Bar is closed (barstate.isconfirmed).
Classification:
• If close > open → **Buying Climax (BC)**.
• If close < open → **Selling Climax (SC)**.
━━━━━━━━━━
3. Visuals
━━━━━━━━━━
The indicator works in a separate pane (overlay = false) and shows:
1) **Histogram in the subwindow**
• Value = Volume / AverageVolume (ratio).
• 1.0 line marks average volume.
• Bars are colored:
– Green for BC,
– Red for SC,
– Neutral grey for all other bars.
2) **Labels on price with force overlay**
• On BC bars a small “BC” label is plotted above the bar high.
• On SC bars a small “SC” label is plotted below the bar low.
• Labels are drawn with `force_overlay=true`, so they appear directly on the price chart even though the indicator itself is in the lower pane.
All signals are generated **only on bar close** to reduce repainting behaviour. The last, still forming bar is not treated as a confirmed climax.
━━━━━━━━━━
4. How to use it
━━━━━━━━━━
Typical applications:
• Wyckoff-style reading of climactic action
– Look for BC near potential buying climaxes in up moves, especially after long rallies or in the last part of a trend.
– Look for SC near potential selling climaxes after panics or shake-outs.
• Effort vs Result analysis
– Ask whether the market gets a lot of “effort” (volume + wide spread) but then fails to continue in the same direction.
– Pay attention to the next 1–3 bars after a BC/SC: is there follow-through or immediate failure?
• Scanning for zones of interest
– On higher timeframes BC/SC can highlight areas worth marking as potential stopping, climactic or reversal zones.
– On intraday timeframes they can show where very aggressive activity hit the tape (news, open/close auctions, liquidations).
The labels and histogram are **not** trading signals by themselves. They are context markers that tell you: “Here was a big push with big spread; now check structure, background and test behaviour.”
━━━━━━━━━━
5. Notes and disclaimer
━━━━━━━━━━
• Works on any symbol and timeframe available on TradingView.
• Uses only standard built-in volume and price data; no exotic calculations.
• Signals are calculated on confirmed bars with `barstate.isconfirmed`, so they do not repaint after the bar closes.
This script is published for educational and analytical purposes only.
It does not constitute financial or investment advice and does not guarantee any performance. Always test your ideas, understand the logic behind your tools and use proper risk management.
Ehler's SMMACredits to and his SmoothCloud indicator. On this script I just wanted the lines so thats what we have here.
Tamil, Buy/Sell Signal for Day Trade and Swing TradeTamil – Buy/Sell Signal for Day Trade and Swing Trade is a price-action style indicator that prints Long and Short signals and automatically projects a full trade plan on the chart: Entry (EP), Stop-Loss (SL), and up to 5 Take-Profit levels (TP1–TP5).
It combines multiple momentum/overextension filters (Keltner Channel bands, CCI, ROC, RSI, Parabolic SAR, and Balance of Power) to detect oversold dips for longs and overbought spikes for shorts. When a signal triggers, the script:
• Draws a signal label showing EP/SL/TP1–TP5 values.
• Plots step lines for EP, SL, and TP levels so you can manage the trade visually.
• Marks TP hits and Stop hits with shapes + background highlights.
• Includes a 200-length DEMA plot for higher-timeframe trend context (optional visual filter).
How signals work (high level):
• Long Signal: price pushes below a deeper Keltner lower band (mean-reversion setup) + bearish momentum extremes (CCI/BOP/ROC) with SAR/median conditions confirming a dip setup.
• Short Signal: price pushes into upper Keltner expansion + bullish momentum extremes (CCI/RSI/ROC) with SAR/median conditions confirming a spike setup.
Best use: intraday scalps or swing entries where you want clear, pre-defined levels for scaling out (TP1→TP5) and strict risk control (SL).
Note: This is an indicator (not a strategy backtest). Always validate on your instrument/timeframe and use risk management
First presented FVG (w/stats) w/statistical hourly ranges & biasOverview
This indicator identifies the first Fair Value Gap (FVG) that forms during each hourly session and provides comprehensive statistical analysis based on 12 years of historical NASDAQ (NQ) data. It combines price action analysis with probability-based statistics to help traders make informed decisions.
⚠️ IMPORTANT - Compatibility
Market: This indicator is designed exclusively for NASDAQ futures (NQ/MNQ)
Timeframe: Statistical data is based on FVGs formed on the 5-minute timeframe
FVG Detection: Works on any timeframe, but use 5-minute for accuracy matching the statistical analysis
All hardcoded statistics are derived from 12 years of NQ historical data
What It Does
1. FVG Detection & Visualization
Automatically detects the first FVG (bullish or bearish) that forms each hour
Draws colored boxes around FVGs:
Blue boxes = Bullish FVG (gap up)
Red boxes = Bearish FVG (gap down)
FVG boxes extend to the end of the hour
Optional midpoint lines show the center of each FVG
Uses volume imbalance logic (outside prints) to refine FVG boundaries
2. Hourly Reference Lines
Vertical Delimiter: Marks the start of each hour
Hourly Open Line: Shows where the current hour opened
Expected Range Lines: Projects the anticipated high/low based on historical data
Choose between Mean (average) or Median (middle value) statistics
Upper range line (teal/green)
Lower range line (red)
All lines span exactly one hour from the moment it opens
Optional labels show price values at line ends
3. Real-Time Statistics Table
The table displays live data for the current hour only:
Hour: Current hour in 12-hour format (AM/PM)
FVG Status: Shows if a Bull FVG, Bear FVG, or no FVG has formed yet
Green background = Bullish FVG detected
Red background = Bearish FVG detected
1st 15min: Direction of the first 15 minutes (Bullish/Bearish/Neutral/Pending)
Continuation %: Historical probability that the hour continues in the first 15-minute direction
Color-coded: Green for bullish, red for bearish
Avg Range %: Expected percentage range for the current hour (based on 12-year mean)
FVG Effect %: Historical probability that FVG direction predicts hourly close direction
Shows BISI→Bull % for bullish FVGs
Shows SIBI→Bear % for bearish FVGs
Blank if no FVG has formed yet
Time Left: Countdown timer showing MM:SS remaining in the hour (updates in real-time)
Hourly Bias: Historical directional tendency (bullish % or bearish %)
H Open: Current hour's opening price
Exp Range: Projected price range (Low - High) based on historical average
Customization Options
Detection Settings:
Lower Timeframe Selection (15S, 1min, 5min) - controls FVG detection granularity
Display Settings:
FVG box colors (bullish/bearish)
Midpoint lines (show/hide, color, style)
Table Settings:
Position (9 locations: corners, edges, center)
Text size (Tiny, Small, Normal, Large)
Hourly Lines:
Toggle each line type on/off
Hour delimiter (color, width)
Open line (color, width, style)
Range lines (color, width, style)
Choose Mean or Median statistics for range calculation
Show/hide labels with customizable text size
How to Use
Apply to NQ futures chart (NQ1! or MNQ1!)
Set chart to 5-minute timeframe for optimal FVG detection matching the statistical data
Watch for the first FVG to form each hour
Reference the table for probability-based decision support:
High continuation % = strong directional bias
FVG Effect % shows reliability of the FVG signal
Time Left helps manage entries/exits within the hour
Use range lines as potential targets or reversal zones
Statistical Foundation
All statistics are derived from:
12 years of NASDAQ (NQ) historical data
Hourly analysis of FVG formation patterns
First 15-minute directional analysis
Mean and Median calculations for range expectations
Data encompasses 2,400+ samples per hour
Best Practices
✅ Use on NQ/MNQ futures only
✅ Best on 5-minute charts (matches statistical data)
✅ Combine FVG signals with continuation probabilities
✅ Use range lines as potential profit targets
✅ Watch the countdown timer for hour-end setups
❌ Do not use on other markets (statistics won't apply)
❌ Avoid using during low-liquidity hours (5PM ET has minimal data)
Technical Notes
Timezone: America/New_York (EST/EDT)
Weekend filtering: Automatically hides data during market closure
Updates in real-time on live bars
Maximum 500 boxes/lines for performance
FVG detection includes volume imbalance (body gap) refinement
Credits
Statistical analysis based on 12 years of NASDAQ historical data. FVG detection methodology follows ICT concepts with volume imbalance refinement.
Disclaimer: This indicator provides statistical analysis based on historical data. Past performance does not guarantee future results. Always use proper risk management.
Would you like me to adjust any section or add/remove anything?6-9 Session & Levels - Customizable Range Analysis Indicator
Description:
This indicator provides comprehensive session-based range analysis designed for intraday traders. It calculates and displays key levels based on a customizable session period (default 6:00-9:00 AM ET).
Core Features:
Sespastedthis is a summary for another indicator- i was hoping for something more like this in terms of content etc22:23Architected comprehensive indicator summary matching professional documentation style.The user wants me to rewrite the summary for their FVG indicator in a similar style to the example provided. The example is more structured, detailed, and professional. Let me create a comprehensive summary that follows that format:
Clear title
Description/Overview
Core Features (broken down into sections)
Input Settings Explained (detailed breakdown of all customization options)
How It Works section
Use Case
Note/Disclaimer
Let me make it thorough and match the style while being accurate to their indicator's functionality.Here's a detailed summary in that format:
Every Hour 1st FVG with Statistical Analysis - NASDAQ Hourly Trading Intelligence
Description:
This indicator identifies the first Fair Value Gap (FVG) that forms during each hourly session and provides comprehensive probability-based statistical analysis derived from 12 years of NASDAQ (NQ) historical data. It combines real-time FVG detection with hardcoded statistical probabilities to help intraday traders make informed decisions based on historical patterns and hourly price action dynamics.
IMPORTANT: This indicator is specifically calibrated for NASDAQ futures (NQ/MNQ) only. All statistical data is derived from 12 years of NQ historical analysis with FVGs detected on the 5-minute timeframe. Using this indicator on other markets will produce invalid statistical results.
Core Features:
FVG Detection & Visualization
Automatically detects and displays the first Fair Value Gap (bullish or bearish) that forms within each hourly session
Color-coded boxes mark FVG zones: Blue for bullish FVGs (gap up), Red for bearish FVGs (gap down)
FVG boxes extend precisely to the end of the hour boundary
Optional midpoint lines show the center point of each FVG
Uses volume imbalance logic (outside prints) to refine FVG boundaries beyond simple wick-to-wick gaps
Supports both chart timeframe detection and lower timeframe detection via request.security_lower_tf
Hourly Reference Lines
Vertical Hour Delimiter: Marks the exact start of each new hour with an extendable vertical line
Hourly Open Line: Displays the opening price of the current hour
Expected Range Lines: Projects anticipated high and low levels based on 12 years of statistical data
Choose between Mean (average) or Median (middle value) calculations
Upper range line shows expected high
Lower range line shows expected low
All lines span exactly one hour from open to close
Optional labels display exact price values at the end of each line
Real-Time Statistics Table
Displays comprehensive live data for the current hour only:
Hour: Current hour in 12-hour format (e.g., "9AM", "2PM")
FVG Status: Shows detection state with color coding
"None Yet" (white background) - No FVG detected
"Bull FVG" (green background) - Bullish FVG identified
"Bear FVG" (red background) - Bearish FVG identified
1st 15min: Direction of first 15 minutes (Bullish/Bearish/Neutral/Pending)
Continuation %: Historical probability that the hour closes in the direction of the first 15 minutes
Green background with up arrow (↑) for bullish continuation probability
Red background with down arrow (↓) for bearish continuation probability
Avg Range %: Expected percentage range for the current hour based on 12-year mean
FVG Effect %: Historical effectiveness of FVG directional prediction
Shows "BISI→Bull %" for bullish FVGs (gap up predicting bullish hourly close)
Shows "SIBI→Bear %" for bearish FVGs (gap down predicting bearish hourly close)
Displays blank if no FVG has formed yet
Time Left: Real-time countdown timer showing minutes and seconds remaining in the hour (MM:SS format)
Hourly Bias: Historical directional tendency showing bullish or bearish percentage bias
H Open: Current hour's opening price
Exp Range: Projected price range showing "Low - High" based on selected statistic (mean or median)
Input Settings Explained:
Detection Settings
Lower Timeframe: Select the base timeframe for FVG detection
Options: 15S (15 seconds), 1 (1 minute), 5 (5 minutes)
Recommendation: Use 5-minute to match the statistical data sample
The indicator uses this timeframe to scan for FVG patterns even when viewing higher timeframes
Display Settings
Bullish FVG Color: Set the color and transparency for bullish (upward) FVG boxes
Bearish FVG Color: Set the color and transparency for bearish (downward) FVG boxes
Show Midpoint Lines: Toggle horizontal lines at the center of each FVG box
Midpoint Line Color: Customize the midpoint line color
Midpoint Line Style: Choose between Solid, Dotted, or Dashed line styles
Table Settings
Table Position: Choose from 9 locations:
Top: Left, Center, Right
Middle: Left, Center, Right
Bottom: Left, Center, Right
Table Text Size: Select from Tiny, Small, Normal, or Large for readability on different screen sizes
Hourly Lines Settings
Show Hourly Lines: Master toggle for all hourly reference lines
Show Hour Delimiter: Toggle the vertical line marking each hour's start
Delimiter Color: Customize color and transparency
Delimiter Width: Set line thickness (1-5)
Show Hourly Open: Toggle the horizontal line at the hour's opening price
Open Line Color: Customize color
Open Line Width: Set thickness (1-5)
Open Line Style: Choose Solid, Dashed, or Dotted
Show Range Lines: Toggle the expected high/low projection lines
Range Statistic: Choose "Mean" (12-year average) or "Median" (12-year middle value)
Range High Color: Customize upper range line color and transparency
Range Low Color: Customize lower range line color and transparency
Range Line Width: Set thickness (1-5)
Range Line Style: Choose Solid, Dashed, or Dotted
Show Line Labels: Toggle price labels at the end of all horizontal lines
Label Text Size: Choose Tiny, Small, or Normal
How It Works:
FVG Detection Logic:
The indicator scans price action on the selected lower timeframe (default: 1-minute) looking for Fair Value Gaps using a 3-candle pattern:
Bullish FVG: Formed when candle 's high is below candle 's low, creating an upward gap
Bearish FVG: Formed when candle 's low is above candle 's high, creating a downward gap
The detection is refined using volume imbalance logic by checking for body gaps (outside prints) on both sides of the middle candle. This narrows the FVG zone to areas where bodies don't touch, indicating stronger imbalances.
Only the first FVG that forms during each hour is displayed. If a bullish FVG forms first, it takes priority. The FVG box is drawn from the formation time through to the end of the hour.
Statistical Analysis:
All probability statistics are hardcoded from 12 years (2,400+ samples per hour) of NASDAQ futures analysis:
First 15-Minute Direction: At 15 minutes into each hour, the indicator determines if price closed above, below, or equal to the hour's opening price
Continuation Probability: Historical analysis shows the likelihood that the hour closes in the same direction as the first 15 minutes
Example: If 9AM's first 15 minutes are bullish, there's a 60.1% chance the entire 9AM hour closes bullish (lowest continuation hour)
4PM shows the highest continuation at 86.1% for bullish first 15 minutes
FVG Effectiveness: Tracks how often the first FVG's direction correctly predicts the hourly close direction
BISI (Bullish Imbalance/Sell-side Inefficiency) → Bullish close probability
SIBI (Bearish Imbalance/Buy-side Inefficiency) → Bearish close probability
Range Expectations: Mean and median values represent typical price movement percentage for each hour
9AM and 10AM show the largest ranges (~0.6%)
5PM shows minimal range (~0.06%) due to low liquidity
Hourly Reference Lines:
When each new hour begins:
Vertical delimiter marks the hour's start
Hourly open line plots at the first bar's opening price
Range projection lines calculate expected high/low:
Upper Range = Hourly Open + (Range% / 100 × Hourly Open)
Lower Range = Hourly Open - (Range% / 100 × Hourly Open)
Lines extend exactly to the hour's end time
Labels appear at line endpoints showing exact prices
Real-Time Updates:
FVG Status: Updates immediately when the first FVG forms
First 15min Direction: Locked in at the 15-minute mark
Countdown Timer: Uses timenow to update every second
Table Statistics: Refresh on every bar close
Timezone Handling:
All times are in America/New_York (Eastern Time)
Automatically filters weekend periods (Saturday and Sunday before 6PM)
Hour detection accounts for daylight saving time changes
Use Cases:
Intraday Trading Strategy Development:
FVG Entry Signals: Use the first hourly FVG as a directional bias
Bullish FVG + High continuation % = Strong long setup
Bearish FVG + High continuation % = Strong short setup
First 15-Minute Breakout: Combine first 15-min direction with continuation probabilities
Wait for first 15 minutes to complete
If continuation % is above 70%, trade in that direction
Example: 4PM bullish first 15 min = 86.1% chance hour closes bullish
Range Targeting: Use expected high/low lines as profit targets or reversal zones
Price approaching mean high = potential resistance
Price approaching mean low = potential support
Compare mean vs median for different risk tolerance (median is more conservative)
Hour Selection: Focus trading on hours with:
High FVG effectiveness (11AM: 81.5% BISI→Bull)
High continuation rates (4PM: 86.1% bull continuation)
Avoid low-continuation hours like 9AM (60.1%)
Time Management: Use the countdown timer to:
Enter early in the hour when FVG forms
Exit before hour-end if no follow-through
Avoid late-hour entries with <15 minutes remaining
Statistical Edge Identification:
Compare current hour's FVG against historical effectiveness
Identify when first 15-min direction contradicts FVG direction (conflict = caution)
Use hourly bias to confirm or contradict FVG signals
Monitor if price stays within expected range or breaks out (outlier moves)
Risk Management:
Expected range lines provide logical stop-loss placement
FVG Effect % helps size positions (higher % = larger position)
Time Left countdown aids in time-based stop management
Avoid trading hours with neutral bias or low continuation rates
Statistical Foundation:
All embedded statistics are derived from:
12 years of NASDAQ futures (NQ) continuous contract data
5-minute timeframe FVG detection methodology
24 hours per day analysis (excluding weekends)
2,400+ samples per hour for robust statistical validity
America/New_York timezone for session alignment
Data includes:
Hourly range analysis (mean, median, standard deviation)
First 15-minute directional analysis
FVG formation frequency and effectiveness
Continuation probability matrices
Bullish/bearish bias percentages
Best Practices:
✅ Do:
Use exclusively on NASDAQ futures (NQ1! or MNQ1!)
Apply on 5-minute charts for optimal FVG detection matching statistical samples
Wait for first 15 minutes to complete before acting on continuation probabilities
Combine FVG signals with continuation % and FVG Effect % for confluence
Use expected range lines as initial profit targets
Monitor the countdown timer for time-based trade management
Focus on hours with high statistical edges (4PM, 11AM, 10AM)
❌ Don't:
Use on other markets (ES, RTY, YM, stocks, forex, crypto) - statistics will be invalid
Rely solely on FVG without confirming with continuation probabilities
Trade during low-liquidity hours (5PM shows only 0.06% average range)
Ignore the first 15-minute direction when it conflicts with FVG direction
Apply to timeframes significantly different from 5-minute for FVG detection
Use median range expectations aggressively (they're conservative)
Technical Implementation Notes:
Timezone: Fixed to America/New_York with automatic DST adjustment
Weekend Filtering: Automatically hides data Saturday and Sunday before 6PM ET
Performance: Maximum 500 boxes and 500 lines for optimal chart rendering
Update Frequency: Table updates on every bar close; timer updates every second using timenow
FVG Priority: Bullish FVGs take precedence when both form simultaneously
Lower Timeframe Detection: Uses request.security_lower_tf for accurate sub-chart-timeframe FVG detection
Precision: All price labels use format.mintick for appropriate decimal precision
Big thanks to @Trades-Dont-Lie for the FPFVG code in his excellent indicator that I've used here
VWAP based long only- AdamMancini//@version=6
indicator("US500 Levels Signal Bot (All TF) v6", overlay=true, max_labels_count=500, max_lines_count=500)
//====================
// Inputs
//====================
levelsCSV = input.string("4725,4750,4792.5,4820", "Key Levels (CSV)")
biasMode = input.string("Auto", "Bias Timeframe", options= )
emaLen = input.int(21, "Bias EMA Length", minval=1)
rsiLen = input.int(14, "RSI Length", minval=1)
atrLen = input.int(14, "ATR Length", minval=1)
proxATR = input.float(0.35, "Level Proximity (x ATR)", minval=0.05, step=0.05)
slATR = input.float(1.30, "SL (x ATR)", minval=0.1, step=0.05)
tp1ATR = input.float(1.60, "TP1 (x ATR)", minval=0.1, step=0.05)
tp2ATR = input.float(2.80, "TP2 (x ATR)", minval=0.1, step=0.05)
useTrend = input.bool(true, "Enable Trend Trigger (Break & Close)")
useMeanRev = input.bool(true, "Enable Mean-Reversion Trigger (Sweep & Reclaim)")
showLevels = input.bool(true, "Plot Levels")
//====================
// Bias TF auto-mapping
//====================
f_autoBiasTf() =>
sec = timeframe.in_seconds(timeframe.period)
string out = "240" // default H4
if sec > 3600 and sec <= 14400
out := "D" // 2H/4H -> Daily bias
else if sec > 14400 and sec <= 86400
out := "W" // D -> Weekly bias
else if sec > 86400
out := "W"
out
biasTF = biasMode == "Auto" ? f_autoBiasTf() :
biasMode == "H4" ? "240" :
biasMode == "D" ? "D" :
biasMode == "W" ? "W" : "Off"
//====================
// Parse levels CSV + plot lines (rebuild on change)
//====================
var float levels = array.new_float()
var line lvlLines = array.new_line()
f_clearLines() =>
int n = array.size(lvlLines)
if n > 0
// delete from end to start
for i = n - 1 to 0
line.delete(array.get(lvlLines, i))
array.clear(lvlLines)
f_parseLevels(_csv) =>
array.clear(levels)
parts = str.split(_csv, ",")
for i = 0 to array.size(parts) - 1
s = str.trim(array.get(parts, i))
v = str.tonumber(s)
if not na(v)
array.push(levels, v)
f_drawLevels() =>
f_clearLines()
if showLevels
int n = array.size(levels)
if n > 0
for i = 0 to n - 1
lv = array.get(levels, i)
array.push(lvlLines, line.new(bar_index, lv, bar_index + 1, lv, extend=extend.right))
if barstate.isfirst or levelsCSV != levelsCSV
f_parseLevels(levelsCSV)
f_drawLevels()
// Nearest level
f_nearestLevel(_price) =>
float best = na
float bestD = na
int n = array.size(levels)
if n > 0
for i = 0 to n - 1
lv = array.get(levels, i)
d = math.abs(_price - lv)
if na(bestD) or d < bestD
bestD := d
best := lv
best
//====================
// Bias filter (higher TF) - Off supported
//====================
bool biasBull = true
bool biasBear = true
if biasTF != "Off"
b_close = request.security(syminfo.tickerid, biasTF, close, barmerge.gaps_off, barmerge.lookahead_off)
b_ema = request.security(syminfo.tickerid, biasTF, ta.ema(close, emaLen), barmerge.gaps_off, barmerge.lookahead_off)
b_rsi = request.security(syminfo.tickerid, biasTF, ta.rsi(close, rsiLen), barmerge.gaps_off, barmerge.lookahead_off)
biasBull := (b_close > b_ema) and (b_rsi > 50)
biasBear := (b_close < b_ema) and (b_rsi < 50)
//====================
// Execution logic = chart timeframe (closed candle only)
//====================
atr1 = ta.atr(atrLen)
rsi1 = ta.rsi(close, rsiLen)
c1 = close
c2 = close
h1 = high
l1 = low
// Manual execution reference: current bar open (next-bar-open proxy)
entryRef = open
lvl = f_nearestLevel(c1)
prox = proxATR * atr1
nearLevel = not na(lvl) and (math.abs(c1 - lvl) <= prox or (l1 <= lvl and h1 >= lvl))
crossUp = (c2 < lvl) and (c1 > lvl)
crossDown = (c2 > lvl) and (c1 < lvl)
sweepDownReclaim = (l1 < lvl) and (c1 > lvl)
sweepUpReject = (h1 > lvl) and (c1 < lvl)
momBull = rsi1 > 50
momBear = rsi1 < 50
buySignal = nearLevel and biasBull and momBull and ((useTrend and crossUp) or (useMeanRev and sweepDownReclaim))
sellSignal = nearLevel and biasBear and momBear and ((useTrend and crossDown) or (useMeanRev and sweepUpReject))
//====================
// SL/TP (ATR-based)
//====================
slBuy = entryRef - slATR * atr1
tp1Buy = entryRef + tp1ATR * atr1
tp2Buy = entryRef + tp2ATR * atr1
slSell = entryRef + slATR * atr1
tp1Sell = entryRef - tp1ATR * atr1
tp2Sell = entryRef - tp2ATR * atr1
//====================
// Plot signals
//====================
plotshape(buySignal, title="BUY", style=shape.labelup, text="BUY", location=location.belowbar, size=size.tiny)
plotshape(sellSignal, title="SELL", style=shape.labeldown, text="SELL", location=location.abovebar, size=size.tiny)
//====================
// Alerts (Dynamic) - set alert to "Any alert() function call"
//====================
if buySignal
msg = "US500 BUY | TF=" + timeframe.period + " | Bias=" + biasTF +
" | Lvl=" + str.tostring(lvl) +
" | EntryRef=" + str.tostring(entryRef) +
" | SL=" + str.tostring(slBuy) +
" | TP1=" + str.tostring(tp1Buy) +
" | TP2=" + str.tostring(tp2Buy)
alert(msg, alert.freq_once_per_bar_close)
if sellSignal
msg = "US500 SELL | TF=" + timeframe.period + " | Bias=" + biasTF +
" | Lvl=" + str.tostring(lvl) +
" | EntryRef=" + str.tostring(entryRef) +
" | SL=" + str.tostring(slSell) +
" | TP1=" + str.tostring(tp1Sell) +
" | TP2=" + str.tostring(tp2Sell)
alert(msg, alert.freq_once_per_bar_close)
NY & Sydney Open firts candle 10m (v6)We will analyze the initial intention of the opening. The first Japanese candlestick after the opening in New York or Sydney will show us the initial intention of the price movement.
NY & Sydney Open firts candle 10m (v6)We will analyze the initial intention of the opening. The first Japanese candlestick after the opening in New York or Sydney will show us the initial intention of the price movement.
Market State & Trend Confirmation SPY/QQQ v5.2 (C1/C2 Cont.)🚀 15-DAY FREE TRIAL — LIMITED BETA ACCESS ( DM Webemoon for Access)
Market Structure & Trend Continuation
The most advanced and highest-probability version ever released.
I am the original creator of Clean Market Structure & Trend Continuation, which has previously been available to the public in earlier, (simplified) forms.
This invite-only edition represents a major evolution — designed to deliver earlier entries, higher-probability trades, cleaner execution, and professional-grade risk management that did not exist in the original public release.
If you’ve used the older version before, understand this clearly:
This is not a cosmetic update.
This is a structural upgrade.
📌 WHAT THIS INDICATOR IS (FOR NEW USERS)
Market Structure & Trend Continuation is a precision-built momentum and continuation system designed for: SPY / QQQ
Index-based momentum trading and trend participation
It is built to:
Identify true directional shifts!
Capture trend continuation entries early!
Avoid chop, noise, and late candles!
Provide clear, objective trade levels!
This is not a lagging indicator, and it is not a signal-spam tool.!
🧠 CORE PHILOSOPHY (SIMPLE EXPLANATION)
Markets move in phases:
Structure forms
Momentum confirms
Continuation follows
Most indicators:
Enter too late!
Fire too often!
Or fail during real volatility!
Market Structure & Trend Continuation is designed to:
Confirm only when structure and momentum agree
Enter during continuation, not exhaustion
Stay quiet when probability is low
🔹 WHAT YOU SEE ON THE CHART
✅ BUY / SELL Signals
Appear only when multiple confirmations align
Designed to reduce false signals and over-trading
Optimized for intraday trading, not hindsight visuals
🔹 Flip Signals (Structure Shifts)
Identify true directional transitions
Stricter qualification
Higher confidence
Fewer but more meaningful signals
⚡ Continuation Signals
Capture trend continuation opportunities
Appear earlier than traditional systems
Designed to participate in momentum without chasing the end of moves
🎯 Automatic Take-Profit Ladder
Dynamic ATR-based target levels
Prints only on confirmed signals
Includes:
TP1
TP2
TP3
STOP level
Levels remain fixed once printed (no repainting)
📈 WHAT MAKES THIS VERSION DIFFERENT FROM THE OLD PUBLIC RELEASE
This invite-only version includes:
Earlier continuation detection
Improved momentum participation
Reduced lag in trend entries
Cleaner signal timing
Stronger filtering during chop
More consistent risk-to-reward behavior
In short:
More usable trades. !!
Fewer low-quality setups. !!
Higher overall probability. !!
The original public version was designed to introduce concepts.
This version is designed to execute consistently.
⏱️ RECOMMENDED USE
Best Timeframes: 5-minute & 15-minute
Markets: SPY / QQQ
Style: Intraday momentum & trend continuation
This indicator is not intended for:
Low-liquidity stocks
Random tickers
Illiquid options chains
🔒 ACCESS & TRIAL DETAILS
This script is Invite-Only
Source code is fully protected
Access is currently offered as a 15-day free trial
💰 PRICING & ACCESS — TRANSPARENT & FAIR
🎁 CURRENT OFFER
15-Day Free Trial
No upfront commitment
Full access during the trial period
💵 ONGOING ACCESS
After the trial period:
$49.00 per month
Cancel anytime
No long-term contracts
WHY $49 / MONTH?
This project was built with a simple philosophy:
We are here to make you a better trader — not to extract thousands of dollars upfront.
Unlike many so-called “institutional” products that:
Charge large upfront fees
Overpromise results
Lock users into expensive programs
Market Structure & Trend Continuation is priced to be:
Accessible
Fair
Sustainable
Focused on long-term trader development
This is a professional-grade system offered at a price that respects the trader.
🔒 ACCESS MODEL
Invite-Only / DM Webemoon directly to Gain Access
Source code fully protected
Access granted and managed directly by the creator
This ensures:
System integrity
Controlled updates
Consistent performance for all users
🧭 FINAL WORD
This is not hype.
This is not guesswork.
This is not a recycled indicator.
Market Structure & Trend Continuation was built from years of real market observation, refined logic, and disciplined execution principles.
If you want:
Cleaner entries
Earlier continuation participation
Clear trade structure
And fewer low-quality trades
You’re in the right place.
Future access requires paid membership ONLY 49.00 a Month
Request access directly through TradingView to be added.
⚠️ IMPORTANT DISCLAIMER
This indicator does not provide financial advice.
It is a decision-support tool designed to assist with market structure and trend analysis.
Always manage risk appropriately.
🧭 FINAL NOTE
If you used the older public version and felt it was:
Too late
Too conservative
Or missed too many quality moves !
This version was built specifically to solve that.






















