FOMC Sweep Reaction AP Capital – FOMC Sweep Reaction v1.0
AP Capital – FOMC Sweep Reaction v1.0 is a news-reaction and liquidity-based trading tool designed specifically to track and trade FOMC volatility on Gold (XAUUSD) and other highly reactive instruments.
The indicator focuses on liquidity sweeps, structure breaks, and EMA reclaims that commonly occur around Federal Reserve interest-rate decisions and Powell speeches, helping traders identify high-probability reversal or continuation moves after the initial spike.
🔍 What This Indicator Detects
This tool highlights the most repeatable FOMC behaviours observed across multiple months of broker data:
• Sweeps of previous day’s high or low
• Stop-hunt wicks into liquidity pools
• EMA13 reclaim after the news spike
• Break and close beyond short-term structure
• Momentum shift following volatility exhaustion
The goal is not to predict the news, but to react to confirmed price behaviour after liquidity has been taken.
📌 Core Features
• FOMC Sweep Detection
Identifies aggressive wicks into prior highs/lows during news volatility
• EMA Reclaim Confirmation
Uses EMA13 to validate momentum shift after the sweep
• Market Structure Awareness
Filters reactions that fail to break structure to avoid false reversals
• Session-Aligned Logic
Designed around London → NY → FOMC release timing
• Clean Visuals
Minimal chart clutter for fast decision-making during volatile conditions
🧠 How to Use
Wait for FOMC release / Powell speech
Allow price to sweep previous liquidity (PDH / PDL / local extremes)
Observe reclaim of EMA13
Enter only after structure confirmation
Manage trade using EMA trailing or structure-based exits
⚠️ This is a reaction system, not a prediction tool.
📊 Best Use Cases
• XAUUSD (Gold)
• NASDAQ / US indices
• High-impact macro news events
• 5-min to 15-min timeframes
⚠️ Important Notes
• News volatility is extreme — risk management is essential
• Not designed for low-volatility or ranging markets
• Best combined with a clear trading plan and strict risk rules
📎 Disclaimer
This indicator is for educational purposes only and does not constitute financial advice. Trading during high-impact news events involves significant risk.
Motifs graphiques
Zee's A+ MOMO BreakThis just shows an indicator when you have a 5 minute momentum candle that breaks PMH under specific parameters, i.e candle size, wick size, relative volume, time of day, etc. It will plot the PMH with a gold line automatically. Entry would be at the close of the MOMO break. I highly encourage you to back test your results and see how strong this setup is. Any questions feel free to comment or reach out, thanks.
Nuaing Trend Zone + Trade Guide PRO Multi TF + Structure Nuaing Trend Zone + Trade Guide PRO Multi TF + Structure
Unsurpassed Close LevelsThis indicator identifies and visually highlights previous candle close prices that have not yet been surpassed by any subsequent higher high — creating dynamic horizontal resistance levels based purely on closing prices.
How it works:
For every confirmed candle, a dashed horizontal ray is drawn from its close price extending to the right.
The ray remains visible as long as no future candle's high reaches or exceeds that previous close level.
As soon as price makes a new high that touches or surpasses the level, the ray is automatically removed.
Duplicate levels (exact same close price already active) are skipped to keep the chart clean.
A built-in limit of 50 active levels prevents overload on very long timeframes.
Use cases:
Spot potential resistance zones formed by previous closes that price has failed to reclaim on the upside.
Helpful in downtrends or ranging markets to visualize "overhead supply" levels where sellers previously stepped in at the close.
Great complement to traditional swing highs or supply/demand zones — focuses exclusively on close-based resistance.
Works on any timeframe and any instrument.
Visuals:
Dashed red horizontal rays extending right from unsurpassed closes.
Clean and lightweight — lines disappear automatically when invalidated.
Simple, effective, and fully automatic. No inputs required.
Feel free to customize the color, style, or max levels count in the code if desired.
Volume Delta Divergence Candle ColorThis indicator identifies divergences between price action and volume delta, highlighting potential reversal or continuation signals by coloring candles when buyer/seller pressure conflicts with the candle's direction.
**How It Works:**
The indicator analyzes real-time up/down volume data to detect two types of divergences:
🟣 **Seller Divergence (Fuscia)** - Occurs when a candle closes bullish (green) but the volume delta is negative, indicating more selling pressure despite the upward price movement. This suggests weak buying or potential distribution.
🔵 **Buyer Divergence (Cyan)** - Occurs when a candle closes bearish (red) but the volume delta is positive, indicating more buying pressure despite the downward price movement. This suggests weak selling or potential accumulation.
**Features:**
✓ Colors only divergent candles - non-divergent candles maintain your chart's default colors
✓ Uses actual exchange volume delta data (works best with CME futures and other instruments with tick-level data)
✓ Optional triangle markers above/below divergent candles for quick visual identification
✓ Clean, minimal design that doesn't clutter your chart
**Best Used For:**
- Identifying potential reversals or continuations
- Spotting weak price movements that may not follow through
- Confirming price action with underlying volume pressure
- Works on any timeframe with available volume delta data
**Note:** This indicator requires volume data from exchanges that provide tick-level information (CME futures, cryptocurrency exchanges, etc.). Results may vary on instruments with limited volume data.
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)
Low Volume Pullback DetectorThis script incorporates the logic of Volume Price Analysis (VPA), identifying potential trend continuations by detecting pullbacks with decreasing volume.
###**Features:**1. **Trend Filtering:** Uses a 50-period EMA to ensure trades align with the dominant market direction.
2. **Structure Identification:** Detects recent highs and lows to confirm that price action is indeed a pullback within a trend.
3. **Volume Analysis:** Checks if the volume during the pullback is below the 20-period average, signaling a lack of conviction from counter-trend traders.
4. **Signal Generation:** Triggers a "Buy" or "Sell" signal when price breaks out of the pullback range, confirming momentum is returning in the direction of the trend.
5. **User Guide:** Detailed comments explaining the strategy, setup, trade execution, and best markets are included directly within the script for easy reference.
###**How to Use:*** **Setup:** Apply the script to a chart (works best on Stocks and Futures).
* **Identify Trend:** Ensure price is above (for Buy) or below (for Sell) the gray 50 EMA line.
* **Wait for Signal:** Look for the **"VOL DRY"** label. This appears when a low-volume pullback is followed by a breakout candle.
* **Execution:** Enter on the close of the signal candle. Set your Stop Loss below/above the pullback swing and target the previous structural high/low.
PCR Put-Call Ratio//@version=5
indicator("PCR Put-Call Ratio", overlay=false, precision=4)
// Input parameters
pcrLength = input(20, "PCR Length", group="Settings")
maLength = input(5, "MA Length", group="Settings")
showOI = input(true, "Use Open Interest", group="Settings")
// Get PCR data from CBOE (requires daily data availability)
pcrData = request.security("CBOE:PC", "D", close)
// Calculate moving average of PCR
pcrMA = ta.sma(pcrData, maLength)
// Levels for interpretation
overbought = 1.2
oversold = 0.6
neutral = 0.9
// Plot PCR value
plot(pcrData, title="PCR Value", color=color.blue, linewidth=2)
plot(pcrMA, title="PCR MA", color=color.orange, linewidth=1)
// Add reference lines
hline(overbought, "Overbought (Bearish)", color.red, linestyle=hline.style_dashed)
hline(neutral, "Neutral", color.gray, linestyle=hline.style_dotted)
hline(oversold, "Oversold (Bullish)", color.green, linestyle=hline.style_dashed)
// Background coloring based on sentiment
bgColor = pcrData > overbought ? color.new(color.red, 80) :
pcrData < oversold ? color.new(color.green, 80) :
color.new(color.gray, 90)
bgcolor(bgColor)
MACD Trend Count ScoreThis indicator aims to confirm trends in an asset's price. This confirmation is achieved by counting the MACD bars in a calculation using the chosen timeframe. Positive and negative bars are considered in the calculation of the strength index, which indicates the current trend of that asset.
ORB + FVG + PDH/PDL ORB + FVG + PDH/PDL is an all-in-one day-trading overlay that plots:
Opening Range (ORB) high/low with optional box and extension
Fair Value Gaps (FVG) with optional “unmitigated” levels + mitigation lines
Previous Day High/Low history (PDH/PDL) drawn as one-day segments (yesterday’s levels plotted across today’s session only)
Includes presets (ORB only / FVG only / Both) and optional alerts for ORB touches, ORB break + retest, FVG entry, and PDH/PDL touches.
11-MA Institutional System (ATR+HTF Filters)11-MA Institutional Trading System Analysis.
This is a comprehensive Trading View Pine Script indicator that implements a sophisticated multi-timeframe moving average system with institutional-grade filters. Let me break down its key components and functionality:
🎯 Core Features
1. 11 Moving Average System. The indicator plots 11 customizable moving averages with different roles:
MA1-MA4 (5, 8, 10, 12): Fast-moving averages for short-term trends
MA5 (21 EMA): Short-term anchor - critical pivot point
MA6 (34 EMA): Intermediate support/resistance
MA7 (50 EMA): Medium-term bridge between short and long trends
MA8-MA9 (89, 100): Transition zone indicators
MA10-MA11 (150, 200): Long-term anchors for major trend identification
Each MA is fully customizable:
Type: SMA, EMA, WMA, TMA, RMA
Color, width, and enable/disable toggle
📊 Signal Generation System
Three Signal Tiers: Short-Term Signals (ST)
Trigger: MA8 (EMA 8) crossing MA21 (EMA 21)
Filters Applied:
✅ ATR-based post-cross confirmation (optional)
✅ Momentum confirmation (RSI > 50, MACD positive)
✅ Volume spike requirement
✅ HTF (Higher Timeframe) alignment
✅ Strong candle body ratio (>50%)
✅ Multi-MA confirmation (3+ MAs supporting direction)
✅ Price beyond MA21 with conviction
✅ Minimum bar spacing (prevents signal clustering)
✅ Consolidation filter
✅ Whipsaw protection (ATR-based price threshold)
Medium-Term Signals (MT)
Trigger: MA21 crossing MA50
Less strict filtering for swing trades
Major Signals
Golden Cross: MA50 crossing above MA200 (major bullish)
Death Cross: MA50 crossing below MA200 (major bearish)
🔍 Advanced Filtering System1. ATR-Based ConfirmationPrice must move > (ATR × 0.25) beyond the MA after crossover
This prevents false signals during low-volatility consolidation.2. Momentum Filters
RSI (14)
MACD Histogram
Rate of Change (ROC)
Composite momentum score (-3 to +3)
3. Volume Analysis
Volume spike detection (2x MA)
Volume classification: LOW, MED, HIGH, EXPL
Directional volume confirmation
4. Higher Timeframe Alignment
HTF1: 60-minute (default)
HTF2: 4-hour (optional)
HTF3: Daily (optional)
Signals only trigger when current TF aligns with HTF trend
5. Market Structure Detection
Break of Structure (BOS): Price breaking recent swing highs/lows
Order Blocks (OB): Institutional demand/supply zones
Fair Value Gaps (FVG): Imbalance areas for potential fills
📈 Comprehensive DashboardReal-Time Metrics Display: {scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;} ::-webkit-scrollbar{display:none}MetricDescriptionPriceCurrent close priceTimeframeCurrent chart timeframeSHORT/MEDIUM/MAJORTrend classification (🟢BULL/🔴BEAR/⚪NEUT)HTF TrendsHigher timeframe alignment indicatorsMomentumSTR↑/MOD↑/WK↑/WK↓/MOD↓/STR↓VolatilityLOW/MOD/HIGH/EXTR (based on ATR%)RSI(14)Color-coded: >70 red, <30 greenATR%Volatility as % of priceAdvanced Dashboard Features (Optional):
Price Distance from Key MAs
vs MA21, MA50, MA200 (percentage)
Color-coded: green (above), red (below)
MA Alignment Score
Calculates % of MAs in proper order
🟢 for bullish alignment, 🔴 for bearish
Trend Strength
Based on separation between MA21 and MA200
NONE/WEAK/MODERATE/STRONG/EXTREME
Consolidation Detection
Identifies low-volatility ranges
Prevents signals during sideways markets
⚙️ Customization OptionsFilter Toggles:
☑️ Require Momentum
☑️ Require Volume
☑️ Require HTF Alignment
☑️ Use ATR post-cross confirmation
☑️ Whipsaw filter
Min bars between signals (default: 5)
Dashboard Styling:
9 position options
6 text sizes
Custom colors for header, rows, and text
Toggle individual metrics on/off
🎨 Visual Elements
Signal Labels:
ST▲/ST▼ (green/red) - Short-term
MT▲/MT▼ (blue/orange) - Medium-term
GOLDEN CROSS / DEATH CROSS - Major signals
Volume Spikes:
Small labels showing volume class + direction
Example: "HIGH🟢" or "EXPL🔴"
Market Structure:
Dashed lines for Break of Structure levels
Automatic detection of swing highs/lows
🔔 Alert Conditions
Pre-configured alerts for:
Short-term bullish/bearish crosses
Medium-term bullish/bearish crosses
Golden Cross / Death Cross
Volume spikes
💡 Key Strengths
Institutional-Grade Filtering: Multiple confirmation layers reduce false signals
Multi-Timeframe Analysis: Ensures alignment across timeframes
Adaptive to Market Conditions: ATR-based thresholds adjust to volatility
Comprehensive Dashboard: All critical metrics in one view
Highly Customizable: 100+ input parameters
Signal Quality Over Quantity: Strict filters prioritize high-probability setups
⚠️ Usage Recommendations
Best for: Swing trading and position trading
Timeframes: Works on all TFs, optimized for 15m-Daily
Markets: Stocks, Forex, Crypto, Indices
Signal Frequency: Conservative (quality over quantity)
Combine with: Support/resistance, price action, risk management
🔧 Technical Implementation Notes
Uses Pine Script v6 syntax
Efficient calculation with minimal repainting
Maximum 500 labels for performance
Security function for HTF data (no lookahead bias)
Array-based MA alignment calculation
State variables to track signal spacing
This is a professional-grade trading system that combines classical technical analysis (moving averages) with modern institutional concepts (market structure, order blocks, multi-timeframe alignment).
The extensive filtering system is designed to eliminate noise and focus on high-probability trade setups.
Cup & Handle Finder by Mashrab🚀 New Tool Alert: The "Perfect Cup" Finder
Hey everyone! I’ve built a custom indicator to help us find high-quality Cup & Handle setups before they breakout.
Most scripts just look for random highs and lows, but this one uses a geometric algorithm to ensure the base is actually round (avoiding those messy V-shapes).
How it works:
🔵 Blue Arc: This marks a verified, institutional-quality Cup.
🟠 Orange Box: This is the "Handle Zone." If you see this connecting to the current candle, it means the setup is live and ready for a potential entry!
Best Usage:
Works best on Weekly (1W) charts.
It’s designed to be an "Early Warning" system—alerting you while the handle is still forming so you don't miss the move.
Give it a try and let me know what you find! 📉📈
takeshi_2Step_Screener_MOU_KAKU_FIXED3//@version=5
indicator("MNO_2Step_Screener_MOU_KAKU_FIXED3", overlay=true, max_labels_count=500)
// =========================
// 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")
showMou = input.bool(true, "Show MOU label")
showKaku = input.bool(true, "Show KAKU label")
showDebugTbl = input.bool(false, "Show debug table (last bar)")
locChoice = input.string("Below Bar", "Label location", options= )
lblLoc = locChoice == "Below Bar" ? location.belowbar : location.abovebar
// =========================
// EMA
// =========================
emaS = ta.ema(close, emaSLen)
emaM = ta.ema(close, emaMLen)
emaL = ta.ema(close, emaLLen)
// plot は if の中に入れない(naで制御)
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
// =========================
// Display (統一ラベル)
// =========================
showKakuNow = showKaku and kaku
showMouPull = showMou and mou_pullback and not kaku
showMouBrk = showMou and mou_breakout and not kaku
plotshape(showMouPull, title="MOU_PULLBACK", style=shape.labelup, text="猛",
color=color.new(color.lime, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showMouBrk, title="MOU_BREAKOUT", style=shape.labelup, text="猛B",
color=color.new(color.lime, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showKakuNow, 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")
// =========================
// Debug table (optional)
// =========================
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
// ❗ colspanは使えないので2セルでヘッダーを作る
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("MOU any", mou, 11)
fRow("KAKU", kaku, 12)
Trend detection zero lag Trend Detection Zero-Lag (v6)
Trend Detection Zero-Lag is a high-performance trend identification indicator designed for intraday traders, scalpers, and swing traders who require fast trend recognition with minimal lag. It combines a zero-lag Hull Moving Average, slope analysis, swing structure logic, and adaptive volatility sensitivity to deliver early yet stable trend signals.
This indicator is optimized for real-time decision-making, particularly in fast markets where traditional moving averages react too slowly.
Core Features
🔹 Zero-Lag Trend Engine
Uses a Zero-Lag Hull Moving Average (HMA) to reduce lag by approximately 40–60% versus standard moving averages.
Provides earlier trend shifts while maintaining smoothness.
🔹 Multi-Factor Trend Detection
Trend direction is determined using a hybrid engine:
HMA slope (momentum direction)
Rising / falling confirmation
Swing structure detection (HH/HL vs LH/LL)
ATR-adjusted dynamic sensitivity
This approach allows fast flips when conditions change, without excessive noise.
Adaptive Volatility Sensitivity
Sensitivity dynamically adjusts based on ATR relative to price
In high volatility: faster reaction
In low volatility: smoother, more stable trend state
This ensures the indicator adapts across:
Trend days
Range days
Volatility expansion or contraction
Trend Duration Intelligence
The indicator tracks historical trend durations and maintains a rolling memory of recent bullish and bearish phases.
From this, it calculates:
Current trend duration
Average historical duration for the active trend direction
This helps traders gauge:
Whether a trend is early, mature, or extended
Probability of continuation vs exhaustion
Strength Scoring
A normalized Trend Strength Score (0–100) is calculated using:
Zero-lag slope magnitude
ATR normalization
This provides a quick read on:
Weak / choppy trends
Healthy trend continuation
Overextended momentum
Visual Design
Color-coded Zero-Lag HMA
Bullish trend → user-defined bullish color
Bearish trend → user-defined bearish color
Designed for dark mode / neon-style charts
Clean overlay with no clutter
Trend Detection Zero-Lag is built for traders who need:
Faster trend recognition
Adaptive behavior across market regimes
Structural confirmation beyond simple moving averages
Clear, actionable visual signals
indicator("MouNoOkite_InitialMove_Screener", overlay=true)//@version=5
indicator("猛の掟・初動スクリーナー(5EMA×MACD×出来高×ローソク)", overlay=true, max_labels_count=500)
// =========================
// 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")
volLookback = input.int(5, "出来高平均(日数)", minval=1)
volMinRatio = input.float(1.3, "出来高倍率(初動点灯)", step=0.1)
volStrong = input.float(1.5, "出来高倍率(本物初動)", step=0.1)
volMaxRatio = input.float(2.0, "出来高倍率(上限目安)", step=0.1)
wickBodyMult = input.float(2.0, "ピンバー判定: 下ヒゲ >= (実体×倍率)", step=0.1)
pivotLen = input.int(20, "直近高値/レジスタンス判定のLookback", minval=5)
pullMinPct = input.float(5.0, "押し目最小(%)", step=0.1)
pullMaxPct = input.float(15.0, "押し目最大(%)", step=0.1)
showDebug = input.bool(true, "デバッグ表示(条件チェック)")
// =========================
// EMA
// =========================
emaS = ta.ema(close, emaSLen)
emaM = ta.ema(close, emaMLen)
emaL = ta.ema(close, emaLLen)
plot(emaS, color=color.new(color.yellow, 0), title="EMA 5")
plot(emaM, color=color.new(color.blue, 0), title="EMA 13")
plot(emaL, color=color.new(color.orange, 0), title="EMA 26")
emaUpS = emaS > emaS
emaUpM = emaM > emaM
emaUpL = emaL > emaL
// 26EMA上に2日定着
above26_2days = close > emaL and close > emaL
// 黄金隊列
goldenOrder = emaS > emaM and emaM > emaL
// =========================
// MACD
// =========================
= ta.macd(close, macdFast, macdSlow, macdSignal)
// ヒストグラム縮小(マイナス圏で上向きの準備)も見たい場合の例
histShrinking = math.abs(macdHist) < math.abs(macdHist )
histUp = macdHist > macdHist
// ゼロライン上でGC(最終シグナル)
macdGCAboveZero = ta.crossover(macdLine, macdSig) and macdLine > 0 and macdSig > 0
// 参考:ゼロ直下で上昇方向(勢い準備)
macdRisingNearZero = (macdLine < 0) and (macdLine > macdLine ) and (math.abs(macdLine) <= math.abs(0.5))
// =========================
// Volume
// =========================
volMA = ta.sma(volume, volLookback)
volRatio = volMA > 0 ? (volume / volMA) : na
volumeOK = volRatio >= volMinRatio and volRatio <= volMaxRatio
volumeStrongOK = volRatio >= volStrong
// =========================
// 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
// 5EMA・13EMA を貫く大陽線(勢い)
bigBull =
close > open and
open < emaM and close > emaS and
(body > ta.sma(body, 20)) // “相対的に大きい”目安
candleOK = pinbar or bullEngulf or bigBull
// =========================
// 押し目 (-5%〜-15%) & レジブレ後
// =========================
recentHigh = ta.highest(high, pivotLen)
pullbackPct = recentHigh > 0 ? (recentHigh - close) / recentHigh * 100.0 : na
pullbackOK = pullbackPct >= pullMinPct and pullbackPct <= pullMaxPct
// “レジスタンスブレイク”簡易定義:直近pivotLen高値を一度上抜いている
// → その後に押し目位置にいる(現在が押し目)
brokeResistance = ta.crossover(close, recentHigh ) or (close > recentHigh )
afterBreakPull = brokeResistance or brokeResistance or brokeResistance or brokeResistance or brokeResistance
breakThenPullOK = afterBreakPull and pullbackOK
// =========================
// 最終三点シグナル(ヒゲ × 出来高 × MACD)
// =========================
final3 = pinbar and macdGCAboveZero and volumeStrongOK
// =========================
// 猛の掟 8条件チェック(1つでも欠けたら「見送り」)
// =========================
// 1) 5EMA↑ 13EMA↑ 26EMA↑
cond1 = emaUpS and emaUpM and emaUpL
// 2) 5>13>26 黄金隊列
cond2 = goldenOrder
// 3) ローソク足が26EMA上に2日定着
cond3 = above26_2days
// 4) MACD(12,26,9) ゼロライン上でGC
cond4 = macdGCAboveZero
// 5) 出来高が直近5日平均の1.3〜2.0倍
cond5 = volumeOK
// 6) ピンバー or 包み足 or 大陽線
cond6 = candleOK
// 7) 押し目 -5〜15%
cond7 = pullbackOK
// 8) レジスタンスブレイク後の押し目
cond8 = breakThenPullOK
all8 = cond1 and cond2 and cond3 and cond4 and cond5 and cond6 and cond7 and cond8
// =========================
// 判定(2択のみ)
// =========================
isBuy = all8 and final3
decision = isBuy ? "買い" : "見送り"
// =========================
// 表示
// =========================
plotshape(isBuy, title="BUY", style=shape.labelup, text="買い", color=color.new(color.lime, 0), textcolor=color.black, location=location.belowbar, size=size.small)
plotshape((not isBuy) and all8, title="ALL8_OK_but_noFinal3", style=shape.labelup, text="8条件OK (最終3未)", color=color.new(color.yellow, 0), textcolor=color.black, location=location.belowbar, size=size.tiny)
// デバッグ(8項目チェック結果)
if showDebug and barstate.islast
var label dbg = na
label.delete(dbg)
txt =
"【8項目チェック】 " +
"1 EMA全上向き: " + (cond1 ? "達成" : "未達") + " " +
"2 黄金隊列: " + (cond2 ? "達成" : "未達") + " " +
"3 26EMA上2日: " + (cond3 ? "達成" : "未達") + " " +
"4 MACDゼロ上GC: " + (cond4 ? "達成" : "未達") + " " +
"5 出来高1.3-2.0: "+ (cond5 ? "達成" : "未達") + " " +
"6 ローソク条件: " + (cond6 ? "達成" : "未達") + " " +
"7 押し目5-15%: " + (cond7 ? "達成" : "未達") + " " +
"8 ブレイク後押し目: " + (cond8 ? "達成" : "未達") + " " +
"最終三点(ヒゲ×出来高×MACD): " + (final3 ? "成立" : "未成立") + " " +
"判定: " + decision
dbg := label.new(bar_index, high, txt, style=label.style_label_left, textcolor=color.white, color=color.new(color.black, 0))
// アラート
alertcondition(isBuy, title="猛の掟 BUY", message="猛の掟: 買いシグナル(8条件+最終三点)")
takeshi GPT//@version=5
indicator("猛の掟・初動スクリーナーGPT", overlay = true, timeframe = "", timeframe_gaps = true)
// ======================================================
// ■ 1. パラメータ設定
// ======================================================
// EMA長
emaFastLen = input.int(5, "短期EMA (5)", minval = 1)
emaMidLen = input.int(13, "中期EMA (13)", minval = 1)
emaSlowLen = input.int(26, "長期EMA (26)", minval = 1)
// 出来高
volMaLen = input.int(5, "出来高平均期間", minval = 1)
volMultInitial = input.float(1.3, "出来高 初動ライン (×)", minval = 1.0, step = 0.1)
volMultStrong = input.float(1.5, "出来高 本物ライン (×)", minval = 1.0, step = 0.1)
// 押し目・レジスタンス
pullbackLookback = input.int(20, "直近高値の探索期間", minval = 5)
pullbackMinPct = input.float(5.0, "押し目下限 (%)", minval = 0.0, step = 0.1)
pullbackMaxPct = input.float(15.0, "押し目上限 (%)", minval = 0.0, step = 0.1)
// ピンバー判定パラメータ
pinbarWickRatio = input.float(2.0, "ピンバー下ヒゲ/実体 比率", minval = 1.0, step = 0.5)
pinbarMaxUpperPct = input.float(25.0, "ピンバー上ヒゲ比率上限 (%)", minval = 0.0, step = 1.0)
// 大陽線判定
bigBodyPct = input.float(2.0, "大陽線の最低値幅 (%)", minval = 0.1, step = 0.1)
// ======================================================
// ■ 2. 基本テクニカル計算
// ======================================================
emaFast = ta.ema(close, emaFastLen)
emaMid = ta.ema(close, emaMidLen)
emaSlow = ta.ema(close, emaSlowLen)
// MACD
= ta.macd(close, 12, 26, 9)
// 出来高
volMa = ta.sma(volume, volMaLen)
// 直近高値(押し目判定用)
recentHigh = ta.highest(high, pullbackLookback)
drawdownPct = (recentHigh > 0) ? (recentHigh - close) / recentHigh * 100.0 : na
// ======================================================
// ■ 3. A:トレンド(初動)条件
// ======================================================
// 1. 5EMA↑ 13EMA↑ 26EMA↑
emaUpFast = emaFast > emaFast
emaUpMid = emaMid > emaMid
emaUpSlow = emaSlow > emaSlow
condTrendUp = emaUpFast and emaUpMid and emaUpSlow
// 2. 黄金並び 5EMA > 13EMA > 26EMA
condGolden = emaFast > emaMid and emaMid > emaSlow
// 3. ローソク足が 26EMA 上に2日定着
condAboveSlow2 = close > emaSlow and close > emaSlow
// ======================================================
// ■ 4. B:モメンタム(MACD)条件
// ======================================================
// ヒストグラム縮小+上向き
histShrinkingUp = (math.abs(histLine) < math.abs(histLine )) and (histLine > histLine )
// ゼロライン直下〜直上での上向き
nearZeroRange = 0.5 // ゼロライン±0.5
macdNearZero = math.abs(macdLine) <= nearZeroRange
// MACDが上向き
macdTurningUp = macdLine > macdLine
// MACDゼロライン上でゴールデンクロス
macdZeroCrossUp = macdLine > signalLine and macdLine <= signalLine and macdLine > 0
// B条件:すべて
condMACD = histShrinkingUp and macdNearZero and macdTurningUp and macdZeroCrossUp
// ======================================================
// ■ 5. C:需給(出来高)条件
// ======================================================
condVolInitial = volume > volMa * volMultInitial // 1.3倍〜 初動点灯
condVolStrong = volume > volMa * volMultStrong // 1.5倍〜 本物初動
condVolume = condVolInitial // 「8掟」では1.3倍以上で合格
// ======================================================
// ■ 6. D:ローソク足パターン
// ======================================================
body = math.abs(close - open)
upperWick = high - math.max(close, open)
lowerWick = math.min(close, open) - low
rangeAll = high - low
// 安全対策:0除算回避
rangeAllSafe = rangeAll == 0.0 ? 0.0000001 : rangeAll
bodyPct = body / close * 100.0
// ● 長い下ヒゲ(ピンバー)
lowerToBodyRatio = (body > 0) ? lowerWick / body : 0.0
upperPct = upperWick / rangeAllSafe * 100.0
isBullPinbar = lowerToBodyRatio >= pinbarWickRatio and upperPct <= pinbarMaxUpperPct and close > open
// ● 陽線包み足(bullish engulfing)
prevBearish = close < open
isEngulfingBull = close > open and prevBearish and close >= open and open <= close
// ● 5EMA・13EMAを貫く大陽線
crossFast = open < emaFast and close > emaFast
crossMid = open < emaMid and close > emaMid
isBigBody = bodyPct >= bigBodyPct
isBigBull = close > open and (crossFast or crossMid) and isBigBody
// D条件:どれか1つでOK
condCandle = isBullPinbar or isEngulfingBull or isBigBull
// ======================================================
// ■ 7. E:価格帯(押し目位置 & レジスタンスブレイク)
// ======================================================
// 7. 押し目 -5〜15%
condPullback = drawdownPct >= pullbackMinPct and drawdownPct <= pullbackMaxPct
// 8. レジスタンス突破 → 押し目 → 再上昇
// 直近 pullbackLookback 本の高値をレジスタンスとみなす(現在足除く)
resistance = ta.highest(close , pullbackLookback)
// レジスタンスブレイクが起きたバーからの経過本数
brokeAbove = ta.barssince(close > resistance)
// ブレイク後に一度レジ上まで戻したか
pulledBack = brokeAbove != na ? ta.lowest(low, brokeAbove + 1) < resistance : false
// 現在は再上昇方向か
reRising = close > close
condBreakPull = (brokeAbove != na) and (brokeAbove <= pullbackLookback) and pulledBack and reRising
// ======================================================
// ■ 8. 最終 8条件 & 三点シグナル
// ======================================================
// 8つの掟
condA = condTrendUp and condGolden and condAboveSlow2
condB = condMACD
condC = condVolume
condD = condCandle
condE = condPullback and condBreakPull
all_conditions = condA and condB and condC and condD and condE
// 🟩 最終三点シグナル
// 1. 長い下ヒゲ 2. MACDゼロライン上GC 3. 出来高1.5倍以上
threePoint = isBullPinbar and macdZeroCrossUp and condVolStrong
// 「買い確定」= 8条件すべて + 三点シグナル
buy_confirmed = all_conditions and threePoint
// ======================================================
// ■ 9. チャート表示 & スクリーナー用出力
// ======================================================
// EMA表示
plot(emaFast, color = color.orange, title = "EMA 5")
plot(emaMid, color = color.new(color.blue, 10), title = "EMA 13")
plot(emaSlow, color = color.new(color.green, 20), title = "EMA 26")
// 初動シグナル
plotshape(
all_conditions and not buy_confirmed,
title = "初動シグナル(掟8条件クリア)",
style = shape.labelup,
color = color.new(color.yellow, 0),
text = "初動",
location = location.belowbar,
size = size.small)
// 三点フルシグナル(買い確定)
plotshape(
buy_confirmed,
title = "三点フルシグナル(買い確定)",
style = shape.labelup,
color = color.new(color.lime, 0),
text = "買い",
location = location.belowbar,
size = size.large)
// スクリーナー用 series 出力(非表示)
plot(all_conditions ? 1 : 0, title = "all_conditions (8掟クリア)", display = display.none)
plot(buy_confirmed ? 1 : 0, title = "buy_confirmed (三点+8掟)", display = display.none)
Ichimoku + VWAP + OBV + ATR Full System (NQ Daytrade)This script provides optimized scalping signals for BTC, designed mainly for the 15-minute timeframe.
Long/short entries are generated using VWAP band position and trend confirmation logic.
OBV momentum is used as a secondary filter to validate breakout or reversal conditions.
Exit signals are displayed when volatility compression or mean-reversion conditions occur.
Simple visual markers (triangles and circles) are included for easy decision-making.
롱/숏 삼각형 시그널
동그라미 청산 시그널
VWAP 밴드 기반 방향성
OBV 보조지표
이름 (Name)
BTC Scalping Signal – VWAP + OBV
짧은 설명 (Short Description)
VWAP 밴드와 OBV를 기반으로 방향성, 진입·청산 시그널을 제공하는 스캘핑 지표입니다.
긴 설명 (Long Description)
이 지표는 BTC 단기 스캘핑을 위해 설계된 것으로, 특히 15분봉 환경에 최적화되어 있습니다.
VWAP 밴드의 위치와 추세 판별 로직을 기반으로 롱·숏 진입 신호를 제공합니다.
OBV 모멘텀을 보조 필터로 사용하여 돌파 및 되돌림 가능성을 판단합니다.
시장 변동성이 축소되거나 평균회귀 신호가 감지될 때 청산 시그널을 표시합니다.
삼각형(진입), 원형(청산) 등 직관적 시각 요소를 통해 빠른 의사결정을 지원합니다.
Time Liquidity a Zulu Kilo indicatorTime Liquidity (Daily/Weekly/Monthly/Quarterly/Yearly) — New York Time (ET)
Time Liquidity is a calendar-based “liquidity map” that tracks highs and lows for the current Day / Week / Month / Quarter / Year (using America/New_York time). When each period completes, its high/low becomes a persistent liquidity level that extends forward until price takes it—helping you quickly see where prior time-based liquidity is still “untouched.”
This is not a trading strategy and does not place trades. It is a context + levels tool designed to help you plan, frame targets, and monitor which higher-timeframe highs/lows remain in play.
What it plots:
1) Current period range boxes (optional)
-A live “bounding box” for the active D / W / M / Q / Y period, updating as new highs/lows form. This gives you better perspective
-Per-timeframe visibility controls and opacity controls.
2) Historical liquidity lines (optional)
-When a period rolls over, the completed period’s High (▲) and Low (▼) are projected forward as liquidity lines.
-Each line remains active until price breaches it (high taken when price trades above; low taken when price trades below).
-Tags identify the source timeframe (D/W/M/Q/Y) and side (high/low).
3) NeoHUD (optional)
-A compact panel showing the nearest next “untaken” liquidity above and below current price for each timeframe.
-Useful for quickly answering: “What’s the closest higher-timeframe high above me?” and “What’s the closest low below me?”
Time / session logic (important)
-All calendar boundaries are computed in New York time (America/New_York).
-Week start is Monday 00:00 ET.
-Sunday handling: you can choose whether Sunday merges into Monday (default behavior - This mostly for futures/FX markets) or is treated as a separate day (useful for Bitcoin, etc..).
(Note: This tool is calendar-based, not exchange-session-based. If your market has non-standard sessions/settlement conventions, interpret levels accordingly.)
How to use it (practical workflow)
-Turn on the timeframes you care about (D/W/M/Q/Y).
-Use current boxes to see the active period’s developing range.
-Use historical lines as a “to-do list” of still-untouched highs/lows.
-Watch the NeoHUD to stay oriented on the closest remaining liquidity above/below price (per timeframe).
For a cleaner chart or faster performance, reduce:
-Max Historical Liquidity Lines Kept / TF
-The number of enabled timeframes
-Glow/frame effects and/or boxes
Limitations / transparency
This indicator does not predict direction or guarantee outcomes; it only visualizes time-based highs/lows and whether they have been taken.
On very low timeframes or long histories, TradingView object limits may apply; use the settings above to manage chart load.
No alerts are included in this script (levels are intended for visual decision support).
Risk notice
Trading involves risk. This tool is provided for educational and informational purposes only and should not be used as the sole basis for trading decisions.
$$\text{Entry and Exit Signals (RSI, MACD, Stochastic)}$$بالتأكيد. إليك شرح كامل للكود البرمجي (Pine Script) الذي يمثل استراتيجية مؤشر الزخم الثلاثي (RSI, MACD, Stochastic) باللغة الإنجليزية، مع توضيح منطق كل شرط:
-----
## 🇺🇸 Multi-Indicator Momentum Confirmation Strategy (Pine Script Explanation)
This custom indicator is designed to generate highly confirmed **Entry (Buy)** and **Exit (Sell/Short)** signals by ensuring that three key momentum and oscillator indicators—**RSI, MACD, and Stochastic**—are all aligned in the same direction.
### 📜 Indicator Code Structure
```pinescript
//@version=5
indicator("إشارات الدخول والخروج (RSI, MACD, Stochastic)", overlay=true)
// --- 1. Indicator Settings (Inputs) ---
rsiLength = input.int(14, title="RSI Length")
rsiLevel = input.float(50, title="Positive RSI Level")
// ... MACD and Stochastic inputs
// --- 2. Calculation of Indicators ---
rsiValue = ta.rsi(close, rsiLength)
= ta.macd(close, fastLength, slowLength, signalLength)
stochK = ta.stoch(close, high, low, stochKLength)
// --- 3. Entry (Bullish) and Exit (Bearish) Conditions ---
//
// --- 4. Final Signal Determination ---
finalEntrySignal = rsiCondition_Bullish and macdCondition_Bullish and stochCondition_Bullish
finalExitSignal = rsiCondition_Bearish and macdCondition_Bearish and stochCondition_Bearish
// --- 5. Plotting the Signals ---
plotshape(
finalEntrySignal ? low : na,
style=shape.labelup,
location=location.belowbar,
text="دخول", // 'Entry'
// ... color and size settings
)
plotshape(
finalExitSignal ? high : na,
style=shape.labeldown,
location=location.abovebar,
text="خروج", // 'Exit'
// ... color and size settings
)
```
### 🧠 Logic Behind the Entry Signal ("دخول" - Buy)
A **"Entry" (Buy)** signal is generated when **ALL THREE** of the following bullish conditions are met on the same candlestick:
| Indicator | Bullish Condition (The Logic) | Why this ensures strong momentum? |
| :--- | :--- | :--- |
| **Relative Strength Index (RSI)** | **Positive AND Increasing:** (`rsiValue > 50`) AND (`rsiValue > rsiValue `) | The asset is not only gaining strength (above the 50 centerline) but its strength is actively **accelerating** (current value is higher than the previous one). |
| **Moving Average Convergence Divergence (MACD)** | **Bullish Crossover:** `macdLine > signalLine` | This indicates that the shorter-term momentum (MACD Line) has crossed above the longer-term momentum average (Signal Line), confirming a potential shift to bullish momentum. |
| **Stochastic Oscillator** | **Positive:** `stochK > 50` | The closing price is in the upper half of the recent price range, suggesting that buying pressure is dominating the current trend cycle. |
**The `finalEntrySignal` is triggered only when `RSI_Bullish AND MACD_Bullish AND Stochastic_Bullish` are true.**
-----
### 📉 Logic Behind the Exit Signal ("خروج" - Sell/Short)
A **"Exit" (Sell/Short)** signal is generated when **ALL THREE** of the following bearish conditions are met on the same candlestick:
| Indicator | Bearish Condition (The Logic) | Why this ensures strong momentum loss? |
| :--- | :--- | :--- |
| **Relative Strength Index (RSI)** | **Negative AND Decreasing:** (`rsiValue < 50`) AND (`rsiValue < rsiValue `) | The asset is losing strength (below the 50 centerline) and its weakness is actively **accelerating** (current value is lower than the previous one). |
| **Moving Average Convergence Divergence (MACD)** | **Bearish Crossover:** `macdLine < signalLine` | The shorter-term momentum has crossed below the Signal Line, confirming a potential shift to bearish momentum. |
| **Stochastic Oscillator** | **Negative:** `stochK < 50` | The closing price is in the lower half of the recent price range, suggesting that selling pressure is dominating the current trend cycle. |
**The `finalExitSignal` is triggered only when `RSI_Bearish AND MACD_Bearish AND Stochastic_Bearish` are true.**
### 💡 Visual Output
* **Entry Signal:** Plotted as a green label with the text "دخول" (**Entry**) **below the bar** (`location.belowbar`).
* **Exit Signal:** Plotted as a red label with the text "خروج" (**Exit**) **above the bar** (`location.abovebar`).
This strategy aims to filter out weak signals by requiring a high level of consensus across multiple technical dimensions.
MNQ Pro Scalping | SMA20 + VWAP Color //@version=5
TIFFANY//@version=5
indicator("MNQ Pro Scalping | SMA20 + VWAP Color + ATR SLTP + Fake Breakout", overlay=true)
// ===== INPUTS =====
smaLen = input.int(20, "SMA Length")
atrLen = input.int(14, "ATR Length")
slMult = input.float(1.0, "SL = ATR x", step=0.1)
tpMult = input.float(1.5, "TP = ATR x", step=0.1)
showNY = input.bool(true, "Only New York Session (09:30–16:00 ET)")
// ===== NY SESSION FILTER =====
inNY = not showNY or time(timeframe.period, "0930-1600")
// ===== SMA 20 =====
sma20 = ta.sma(close, smaLen)
smaColor = close > sma20 ? color.green : color.red
plot(sma20, "SMA 20", color=smaColor, linewidth=2)
// ===== VWAP (COLOR CHANGE) =====
vwapVal = ta.vwap(hlc3)
vwapColor = close > vwapVal ? color.green : color.red
plot(vwapVal, "VWAP", color=vwapColor, linewidth=2)
// ===== ATR =====
atr = ta.atr(atrLen)
// ===== CROSS CONDITIONS =====
crossUp = ta.crossover(close, sma20)
crossDown = ta.crossunder(close, sma20)
// ===== VALID TRADE CONDITIONS =====
longCond = crossUp and close > vwapVal and inNY
shortCond = crossDown and close < vwapVal and inNY
// ===== ATR SL / TP LEVELS =====
longSL = close - atr * slMult
longTP = close + atr * tpMult
shortSL = close + atr * slMult
shortTP = close - atr * tpMult
// ===== PLOT SL / TP WHEN SIGNAL =====
plot(longCond ? longSL : na, "Long SL", color=color.red, style=plot.style_linebr)
plot(longCond ? longTP : na, "Long TP", color=color.green, style=plot.style_linebr)
plot(shortCond ? shortSL : na, "Short SL", color=color.red, style=plot.style_linebr)
plot(shortCond ? shortTP : na, "Short TP", color=color.green, style=plot.style_linebr)
// ===== FAKE BREAKOUT DETECTION =====
// Giá cắt SMA nhưng đóng nến quay ngược lại
fakeUp = ta.crossover(high, sma20) and close < sma20
fakeDown = ta.crossunder(low, sma20) and close > sma20
plotshape(fakeUp and inNY, title="Fake Up", style=shape.xcross, location=location.abovebar, color=color.red, size=size.small)
plotshape(fakeDown and inNY, title="Fake Down", style=shape.xcross, location=location.belowbar, color=color.green, size=size.small)
// ===== SIGNAL SHAPES =====
plotshape(longCond, title="LONG", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(shortCond, title="SHORT", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// ===== ALERTS =====
alertcondition(longCond,
title="MNQ LONG – ATR Setup",
message="MNQ LONG: Cross ABOVE SMA20 | Above VWAP | ATR SL/TP valid")
alertcondition(shortCond,
title="MNQ SHORT – ATR Setup",
message="MNQ SHORT: Cross BELOW SMA20 | Below VWAP | ATR SL/TP valid")
alertcondition(fakeUp,
title="Fake Breakout UP",
message="WARNING: Fake breakout ABOVE SMA20")
alertcondition(fakeDown,
title="Fake Breakout DOWN",
message="WARNING: Fake breakout BELOW SMA20")






















