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.
Candlestick analysis
Timeframe Overlay 24HrDaily High–Low Box (00:00–23:59)
This indicator highlights each trading day with a shaded box spanning from 00:00 to 23:59 (based on the selected timezone) and covering the day’s highest and lowest price.
• Green box when the day closes above its open
• Red box when the day closes below its open
• Historical days are fully drawn for easy comparison
• Current day box builds dynamically as new candles form
Useful for visualising daily range, market bias, and intraday structure across all timeframes.
EMA 8 / 20 / 200Created to easily use the 8/20/200 strategy.
This indicator is designed to give a clear, multi-timeframe view of trend, momentum, and structure using three exponential moving averages.
1. Trend direction (EMA 200 – pink)
The 200 EMA acts as the long-term trend filter.
Price above the 200 EMA suggests a bullish market bias.
Price below the 200 EMA suggests a bearish market bias.
Many traders avoid taking trades against this higher-timeframe direction.
2. Momentum and trade bias (EMA 20 – blue)
The 20 EMA reflects short-term momentum.
When price respects the 20 EMA in an uptrend, pullbacks often provide continuation entries.
In downtrends, the 20 EMA frequently acts as dynamic resistance.
3. Entry timing (EMA 8 – yellow)
The 8 EMA is a fast reaction line used for precise timing.
Crosses of the 8 EMA over the 20 EMA can signal momentum shifts.
Strong trends often show price holding above (or below) the 8 EMA during impulse moves.
4. Confluence and trade filtering
The indicator works best when the EMAs are aligned:
Bullish alignment: EMA 8 > EMA 20 > EMA 200
Bearish alignment: EMA 8 < EMA 20 < EMA 200
Misaligned EMAs usually indicate consolidation or low-probability conditions.
5. Risk management context
EMAs can act as dynamic support and resistance:
Stops are often placed beyond the 20 EMA or 200 EMA depending on trade horizon.
Loss of EMA structure is a warning sign that the trend may be weakening.
In short, the indicator is a trend-first, momentum-second framework that helps you decide when to trade, in which direction, and when to stay out.
Improved Candle Strategy (without daily squared)# Candle Pattern Trading Strategy
## Core Logic
Analyzes the last 5 candlesticks to identify "close at high" and "close at low" patterns, generating long/short signals.
## Trading Conditions
- **Long**: ≥2 bars closed at high in past 5 bars + current bar closes at high → Open long
- **Short**: ≥2 bars closed at low in past 5 bars + current bar closes at low → Open short
- **Filter**: If ≥3 doji patterns detected, skip trading
## Risk Management
- Stop Loss: Based on entry bar's high/low
- Take Profit: Risk × 2x multiplier
- Cooldown: No trading for 2 bars after entry
- Session Filter: No trading for first 5 bars after market open
## Configurable Parameters
- Lookback period, doji threshold, close proximity ratio, TP/SL ratio, cooldown bars, etc.
**Use Cases**: 1-minute and higher timeframes on stocks/futures
EMA 5/9 Angle + Candle Strength (SL=Open, TP=RR)EMA 5 / EMA 9 cross
Cross must have ~30° angle (approximated using slope → atan)
Entry candle must be bullish/bearish and also be Normal / 2nd Most / Most based on body-size percentile
Entry = close of signal candle
SL = open of signal candle
TP = 1:2 RR (editable input)
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
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.
HydraBot v1.2 publicenglish description english description english description english description english description english description english description english description english description
AI PRE-MARKET PRO - True/Fake Gap Classification-Version 1.0## **AI PRE-MARKET PRO: QUICK START GUIDE**
This indicator classifies market gaps by comparing the **Current Price** to yesterday’s **High (PDH)**, **Low (PDL)**, and **Close (PDC)**.
### **1. GAP CLASSIFICATIONS**
* **🔥 TRUE GAPS (High Momentum)**
* **True Gap Up:** Price is above PDH. The market is in "Discovery Mode." High probability of trend continuation.
* **True Gap Down:** Price is below PDL. Significant bearish sentiment. High probability of further selling.
* **⚠️ FAKE GAPS (Mean Reversion)**
* **Fake Gap Up:** Above PDC but below PDH. Price is "trapped" in yesterday's value. Often reverts to the Close (PDC).
* **Fake Gap Down:** Below PDC but above PDL. Price is "trapped." Often bounces back toward the Close (PDC).
### **2. TRADING STRATEGY CHEAT SHEET**
| Scenario | Primary Play | Entry Logic |
| --- | --- | --- |
| **True Gap Up** | **Continuation** | Wait for a pullback to **PDH**; buy the hold. |
| **True Gap Down** | **Continuation** | Wait for a rally to **PDL**; short the rejection. |
| **Fake Gap Up** | **Fade/Range** | Short the rejection of **PDH** or **ONH**; target **PDC**. |
| **Fake Gap Down** | **Fade/Range** | Buy the bounce at **PDL** or **ONL**; target **PDC**. |
### **3. CRITICAL LEVELS ON YOUR CHART**
* **PDH / PDL:** The "Line in the Sand." Breaking these turns a Fake Gap into a True Gap.
* **ONH / ONL:** Overnight High/Low. These are your immediate support/resistance targets for the first 30 minutes of trading.
* **PDC:** Previous Day Close. The "Magnet." If the market doesn't trend, it usually returns here.
### **4. HOW TO READ THE AI TABLES**
* **Left Table:** Shows real-time distance (RT Δ) to key levels and whether they have been hit yet (**Mitigated**).
* **Bottom Tables:** Provide a probability-based "Game Plan" and specific execution rules (e.g., "Wait for 15-minute confirmation").
---
**Next Step:** Would you like me to show you how to set up an alert for when the price crosses the **PDH** or **PDL** to catch a True Gap breakout?
Wide Bodied Bar (WBB) IdentifierThis script is inspired by Peter L.Brandt's Wide Bodied Bar/WBB. It uses ATR to detect the wide bodied bars. Peter prefered WBB's for his entries. I believe this bar made him feel that the breakout is real and will continue on the same direction as the breakout. Enjoy
Enhanced Swing Trading Confluence [Hidden Div Bonus + Dashboard]powerful swing trading indicator combining multiple confluence factors for high-probability setups.
This indicator identifies premium long and short opportunities by requiring alignment across:
• Trend direction (price above/below 200 EMA + optional 50/100/200 EMA stacking)
• RSI oversold/overbought conditions (with optional strict crossover requirement)
• MACD line/signal crossover
• Price touching Bollinger Band extremes
• Optional Bollinger Band squeeze (low volatility contraction)
• Optional volume spike confirmation
Features:
• Clean entry arrows for ready signals
• Real-time confluence dashboard showing which conditions are met
• Accurate regular RSI divergence detection (reversal signals)
• Hidden RSI divergence detection (trend continuation signals)
• Optional use of recent hidden divergence as a bonus confirmation filter
• Customizable inputs and alerts
Ideal for swing traders seeking multi-factor confirmation before entries. Works across all markets and timeframes. Alerts fire only when full confluence is achieved for disciplined, high-quality trade setups.
Bar CountCount K bars based on sessions
Support at most 3 sessions
Customize the session's timezone and period
Set steps between each number
Use with the built-in Trading Session indicator is a great convenience
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)
just takesi TimeMNO_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)
Monthly Hotness RSI (Auto-Calibrated)Indicator of the previous months volatility/vol compared to averages over the last 3-5 years. helps show trend and if the market is 'hot'. indicator is good for showing favourable market conditions.
Market + Direction + Entry + Hold + Exit v1.5 FINALOverview
This script is a complete trend-based trading framework designed to filter market conditions, determine directional bias, detect high-quality pullback entries, manage active trades, and identify trend-weakening exit points.
It is optimized for NQ futures, Gold (XAUUSD), and Bitcoin, with adaptive parameters for each asset.
The logic focuses on trading only when conditions are favorable, aligning entries with the primary trend, and avoiding low-probability setups.
1. Market Condition Filter
Before any signal appears, the script checks whether the market is active using three conditions:
ATR compared to ATR moving average (volatility condition)
Volume compared to average volume (liquidity condition)
Price distance from VWAP (suppression of mean-reversion environments)
A trade environment is considered active when at least two of these three conditions are positive.
2. Trend Direction Filter
Directional bias is defined by:
EMA21 relative to EMA55
Price relative to VWAP
Heikin-Ashi structure
When these conditions align, the script switches into long-only or short-only mode.
No counter-trend signals are displayed.
3. Entry Logic (L, L2, L3 and S, S2, S3)
The system identifies pullback entries within a confirmed trend.
Long entries require:
Uptrend confirmation
Price dipping toward EMA21 or EMA55
A constructive Heikin-Ashi candle
Market environment active
Short entries mirror the same structure in bearish conditions.
Re-entries (L2, L3, S2, S3) are given only if the trend remains intact after the first entry.
4. Hold Logic
A hold signal appears if momentum remains aligned with the trend.
Momentum is evaluated using the Stochastic indicator (K and D lines).
5. Exit Logic
An exit signal appears when:
The recent structural low (for longs) or high (for shorts) is broken, and
The EMA slope indicates weakening trend strength
This combination identifies high-probability trend exhaustion.
How to Use
Add the script to your chart.
Select an asset preset (NQ, GOLD, BTC).
Wait for the market to be active.
Follow the entry signals (L, L2, L3 or S, S2, S3).
Hold signals help confirm continuation.
Exit signals indicate potential trend reversal or weakness.
Feature Summary
Market environment filter
Trend direction filter
Pullback-based entry system
Multi-stage re-entry framework
Momentum-based hold signal
Structure-based exit
Asset-adaptive parameters
Clean chart visualization
Disclaimer
This script is for research and educational use.
It does not constitute financial advice.
Always backtest before using in live markets.
개요
이 스크립트는 시장 상태 필터링, 추세 방향 판단, 고품질 눌림목 진입, 보유 판단, 추세 약화 기반 청산까지 모두 포함하는 완전한 트레이딩 프레임워크입니다.
NQ, 골드(XAUUSD), 비트코인에 맞게 최적화되어 있습니다.
1. 시장 필터
다음 세 가지 중 두 가지 이상이 충족될 때만 매매 환경을 ‘활성’으로 판단합니다.
ATR 기준 변동성 체크
거래량 활성도 체크
가격의 VWAP 거리 체크
2. 방향(추세) 필터
다음 조건을 기반으로 상승·하락 추세를 결정합니다.
EMA21 vs EMA55
가격 vs VWAP
Heikin-Ashi 구조
이 조건이 일치할 때만 롱 전용 또는 숏 전용 모드로 진입합니다.
3. 진입 로직
추세가 유지되는 상태에서 EMA21 또는 EMA55까지 눌림이 나올 때
L 또는 S 신호를 제공합니다.
추세가 유지되면 L2/L3, S2/S3 재진입 신호가 추가로 발생합니다.
4. 보유(Hold)
모멘텀이 추세 방향과 일치할 때 보유 신호를 제공합니다.
5. 청산(Exit)
다음 두 조건이 동시에 나타날 때 청산 신호가 표시됩니다.
직전 구조(스윙)가 붕괴될 때
EMA 기울기가 약화될 때
사용 방법
차트에 스크립트를 추가합니다.
자산 프리셋(NQ, GOLD, BTC)을 선택합니다.
시장이 활성일 때만 신호를 참고합니다.
L/S 진입 신호와 보유/청산 신호를 활용해 매매 흐름을 관리합니다.
Large Candle HighlightHighlights candles whose range exceeds a specified threshold by shading the chart background.
This indicator is designed to visually identify unusually large price movements without generating trade signals.
キャンドルの長さを設定し、数値以上なら背景をハイライトするインジケーターです。
Colby Cheese VWAP Setup [v2.0]🔧 Core Refactors
• Imbalance function fixed:
• Removed invalid usage.
• Now uses for past bar references.
• Bias checks are handled outside the function with proper series indexing.
• Bias alignment:
• Added and so CHoCH signals only fire when price change agrees with EMA bias.
• Swing reset:
• After a valid CHoCH, and reset to so stale levels don’t keep firing.
• Line/label management:
• CHoCH lines and labels now reuse persistent IDs (, ) instead of spamming new objects every trigger.
✨ New Features
• Anticipation mode:
• Blue “Anticipate” lines/labels drawn when delta + bias align before CHoCH confirmation.
• Helps you see potential setups earlier.
• Entry zone lines:
• Solid green/red lines drawn at entry levels when is enabled.
• Separate from FRVP dashed zones.
• Stop‑loss lines:
• Orange dotted lines drawn opposite the entry zone when is enabled.
• Gives a visual risk marker.
🎨 Visual Consistency
• Candle coloring simplified: white candles only when CHoCH triggers.
• FRVP zones remain dashed lines with “Enter” labels.
• Anticipation zones are blue solid lines.
• Entry zones are solid green/red.
• Stop‑loss lines are orange dotted.
Demi's + EMAs + VWAP + Key SR Lines + RSI SignalsBasic buy sell script for 5 min chart updated daily
ETIQUETAS DE ANCLAJE.INTERVALO 9:00 AM/4.15PMThis indicator displays labels on the candlestick that range from 9:00 am to 4:15 pm, with 5-minute intervals, indicating the 5M periods on the chart.
Reentry BUY SELL OnlyReentry BBMA tapi per 4 jam sekali,,
Entri di time frame m15 folow buy dan sellnya






















