CRT - Candle Range TheoryCRT - Candle Range Theory is an indicator that identifies CRT patterns based on the concept of liquidity sweeps and price rejection.
WHAT IS CRT?
A CRT (Candle Range Theory) pattern occurs when:
- A "Parent" candle establishes a range (High/Low)
- The next candle sweeps beyond one side of that range (liquidity grab)
- But closes back INSIDE the parent range (rejection)
This creates a potential reversal signal as liquidity has been taken and price rejected continuation.
PATTERN TYPES
BEARISH CRT
- CRT candle sweeps above Parent High
- Does NOT sweep below Parent Low
- Closes inside Parent range
BULLISH CRT
- CRT candle sweeps below Parent Low
- Does NOT sweep above Parent High
- Closes inside Parent range
ALERT TYPES
The indicator offers three alert filters based on the strength of rejection:
1. Close NOT Reach 50%
Strongest rejection - Close doesn't even retrace to the 50% level of the parent range.
Bearish: Close > 50% | Bullish: Close < 50%
2. Price NOT Reach 50%
Price (wick) doesn't reach the 50% level at all.
Bearish: Low > 50% | Bullish: High < 50%
3. Basic CRT
Any valid CRT pattern without the 50% filter.
VISUAL ELEMENTS
- PH / PL lines: Parent candle High and Low
- 50% line: Middle of the parent range
- 25% / 75% lines: Quarter levels of the parent range
- Labels: Appear on CRT candle showing pattern type and conditions met
HOW TO USE
1. Set your preferred chart timeframe
2. Enable the alert types you want to monitor
3. Create alerts via the TradingView alert menu
4. Labels will automatically appear when conditions are met
SETTINGS
Visual Settings
- Colors for PH/PL, 50%, and 25%/75% lines
- Line widths for each level type
- Toggle visibility for 50% and quarter lines
CRT Alerts
- Show/hide labels on chart
- Customize bearish/bullish label colors
- Enable/disable each alert type independently
NOTES
- This indicator works on any timeframe
- Multiple conditions can be displayed in one label if enabled
- Outside bars (sweep both sides) are excluded from CRT detection
- Close must be inside parent range for valid pattern
نماذج فنيه
STOC DMA Ribbon, Trend, Volume & Structure Dashboard v1.5This indicator is the intellectual property of Systematic Traders Club.
Distribution, modification, or commercial use without permission is prohibited.
This indicator is provided for educational and informational purposes only.
It does not constitute financial advice, investment recommendations, or trade signals.
The creator and Systematic Traders Club are not responsible for any financial losses resulting from the use of this indicator.
Trading and investing involve risk. Always do your own analysis and use proper risk management.
UT3T Stratejisi (Ugur Tufan Trend ve Trade Takip Stratejisi)UT3T Strategy (Trend & Trade Tracking System)
UT3T Strategy is a comprehensive, hybrid trading system designed to capture both long-term trends and short-term trade opportunities. It combines smart cost averaging (DCA), dynamic profit-taking, and Fibonacci-based trade levels into a single, powerful indicator.
This script is ideal for traders looking for a structured approach to managing positions in both trending and ranging markets.
Key Features:
Dual Strategy Engine:
Strategy 1 (Trend Following): Uses EMA crossovers (EMA9/EMA50) to identify trend direction. It includes a smart DCA (Dollar Cost Averaging) mechanism labeled as ADD-LONG to optimize entry prices during corrections.
Strategy 2 (Trade Tracking): Utilizes custom Fibonacci channels to identify potential reversal zones (LONG / SHORT) based on price action and support/resistance levels.
Smart Position Management:
Dynamic Take Profit (TP): Offers an optional "Progressive TP" mode where profit targets increase by 50% after each successful hit (e.g., 10% -> 15% -> 22.5%), allowing you to ride strong trends.
Custom Exit Logic: The SHORT signal is triggered only if a minimum profit threshold (defined by the user) is met, preventing premature exits in small pullbacks.
Visual Clarity:
Clear Labels: Distinguishes between initial entries (LONG) and averaging entries (ADD-LONG) directly on the chart.
Alert System: Includes a fully customizable alert system for every signal type (Trend Entry, DCA, Stop Loss, Take Profit, and Fib Levels).
How to Use:
Symbol Settings: Input your preferred tickers and customize TP/Cost percentages in the settings menu.
Fib Levels: Define custom High/Low prices for Strategy 2 to generate Fib channels automatically.
Alerts: Set alerts based on your trading style (Per Bar Close for trends, Once Per Bar for TP levels).
90% WR Buy/Sell Cloud ( Infinite money glitch) The Cheat code:The Official Manual Tradingview took down my last indicator..?
Maybe it was working too well..
Disclaimer: I am not a financial advisor. I do not give financial advice. This indicator and my commentary are for educational purposes only. You are responsible for your own trades.
I built this indicator to show you exactly what I see in the market. The coding is complex so your decision-making can be simple. Here is how to use common sense and read the chart properly to replicate the structure I see.
1. General Trading Principles (The Mindset)
To succeed with this system, you need discipline.
Take Profits: Do not be greedy. When the move happens, pay yourself.
Use Stop Losses: Protect your capital. Never let a trade run wild.
The -99% Rule: You should never hold a position—mine or anyone else's—down to -99%. If the structure breaks, get out.
Be Active: Have your charts pulled up. If you have the indicator on your screen, you don’t need to wait for anyone to tell you what to do—the exit signals are right there.
2. The "Box of EMAs" (Your GPS)
This feature is literal. It removes the guesswork.
Red EMAs Going Down: The market is bearish. We are going down. Do not look for buys.
Curling Up: Bullish momentum is starting.
The Strategy: Use this to confirm the trend on Higher Time Frames (30m to Daily). If your Daily and 4-Hour EMAs are curling, the probability is in your favor.
3. The Cloud (Structure & Refusal)
Think of the Cloud as the floor or the ceiling.
Below the Cloud: It acts as Resistance. Look for price to hit the cloud and reject (Refusal).
Above the Cloud: It acts as Support. Look for the bounce.
The Rule: If the Box of EMAs is red and you are below a red Cloud, do not fight it. The trend is your friend until it bends.
4. Clean Up Your Charts
I added extra features because people asked for them, but for the best results, turn off the noise.
My Recommended Setup:
KEEP: Order Blocks, The Cloud, Buy/Sell Signals, Table Dashboard.
TURN OFF: Everything else.
Why? You need clarity to see the structure, not clutter.
5. ***Hidden***
6. The "False Signal" Myth (Read This)
I see people claiming "false signals" on the 5-minute chart. Let me be clear: There is no repaint.
Here is how the code works:
A signal may appear during the formation of a candle if conditions are met.
If price moves and those conditions are no longer met before the candle closes, the signal will disappear. This is not repainting; this is real-time data.
Repainting is when a signal pops up on a candle minutes or hours after it has already closed. My indicator does not do that.
Solution: Wait for the candle close to confirm the signal, or understand that an open candle is fluid.
I haven't lost using this and hopefully you don't either. I've debated on even posting this, as really it shouldn't even be out there—but for the lucky few that snag it, enjoy it while you can. Cheers.
8menutakeshi//@version=5
indicator("猛の掟・初動スクリーナー(完全版:8項目コメント表示)", overlay=true, max_labels_count=50)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Inputs
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
showPanel = input.bool(true, "コメント表示")
panelPos = input.string("右上", "コメント位置", options= )
lastBarOnly = input.bool(true, "最後の足だけ更新(推奨)")
// EMA
lenEma1 = input.int(5, "EMA 5", minval=1)
lenEma2 = input.int(13, "EMA 13", minval=1)
lenEma3 = input.int(26, "EMA 26", minval=1)
// MACD
macdFast = input.int(12, "MACD fast", minval=1)
macdSlow = input.int(26, "MACD slow", minval=1)
macdSig = input.int(9, "MACD signal", minval=1)
// Volume
volMaLen = input.int(5, "出来高平均(N日)", minval=1)
volMinMul = input.float(1.3, "出来高倍率Min", step=0.1)
volMaxMul = input.float(2.0, "出来高倍率Max", step=0.1)
volFinalMul = input.float(1.5, "最終三点:出来高倍率(>=)", step=0.1)
// Candle
wickBodyMult = input.float(1.8, "下ヒゲ判定:下ヒゲ/実体 >=", step=0.1)
atrLen = input.int(14, "ATR長", minval=1)
bigBodyATR = input.float(1.2, "大陽線判定:実体 >= ATR×", step=0.1)
// Breakout / Pullback
resLookback = input.int(20, "レジスタンス:過去N日高値", minval=5)
pullMinPct = input.float(5.0, "押し目Min(%)", step=0.5)
pullMaxPct = input.float(15.0, "押し目Max(%)", step=0.5)
retestAllowPct = input.float(1.0, "ブレイク価格の許容下抜け(%)", step=0.1)
stateExpireBars = input.int(30, "ブレイク状態の期限(本数)", minval=5)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Series
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ema5 = ta.ema(close, lenEma1)
ema13 = ta.ema(close, lenEma2)
ema26 = ta.ema(close, lenEma3)
= ta.macd(close, macdFast, macdSlow, macdSig)
volAvg = ta.sma(volume, volMaLen)
volMul = volAvg == 0 ? na : (volume / volAvg)
atr = ta.atr(atrLen)
// Candle parts
body = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 1-3: トレンド
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ema5Up = ema5 > ema5
ema13Up = ema13 > ema13
ema26Up = ema26 > ema26
allEmaUp = ema5Up and ema13Up and ema26Up
golden = (ema5 > ema13) and (ema13 > ema26)
above26_2days = (close > ema26) and (close > ema26 )
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 4: MACD(ゼロライン上GC)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
macdZeroGC = ta.crossover(macdLine, macdSignal) and (macdLine > 0)
histShrinkToUp = (macdHist > macdHist ) and (macdHist < macdHist ) // 参考表示
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 5: 出来高
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
volOK = not na(volMul) and (volMul >= volMinMul) and (volMul <= volMaxMul)
volStrongOK = not na(volMul) and (volMul >= volFinalMul) // 最終三点用
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 6: ローソク(ピンバー/包み/大陽線)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
longLowerWick = (body > 0) and ((lowerWick / body) >= wickBodyMult) and (upperWick <= lowerWick * 0.6) and (close > open)
bullEngulf = (close < open ) and (close > open) and (open <= close ) and (close >= open )
bigBull = (close > open) and (body >= atr * bigBodyATR) and (open < ema13) and (close > ema5)
candleOK = longLowerWick or bullEngulf or bigBull
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 7-8: ブレイク後押し目(押し目 -5〜15%)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
res = ta.highest(high, resLookback)
breakout = ta.crossover(close, res)
var bool inBreak = false
var float breakPrice = na
var int breakBar = na
var float postBreakHigh = na
if breakout
inBreak := true
breakPrice := res
breakBar := bar_index
postBreakHigh := high
if inBreak
postBreakHigh := na(postBreakHigh) ? high : math.max(postBreakHigh, high)
pullPct = (inBreak and not na(postBreakHigh) and postBreakHigh != 0) ? (postBreakHigh - close) / postBreakHigh * 100.0 : na
pullOK = not na(pullPct) and (pullPct >= pullMinPct) and (pullPct <= pullMaxPct)
retestOK = inBreak and not na(breakPrice) and (close >= breakPrice * (1 - retestAllowPct/100.0))
breakoutPullbackOK = inBreak and retestOK and pullOK
if inBreak and not na(breakBar) and (bar_index - breakBar > stateExpireBars)
inBreak := false
breakPrice := na
breakBar := na
postBreakHigh := na
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 8項目チェック(1つでも欠けたら見送り)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
chk1 = allEmaUp
chk2 = golden
chk3 = above26_2days
chk4 = macdZeroGC
chk5 = volOK
chk6 = candleOK
chk7 = pullOK
chk8 = breakoutPullbackOK
all8 = chk1 and chk2 and chk3 and chk4 and chk5 and chk6 and chk7 and chk8
// 最終三点(ヒゲ×出来高×MACD)
// ※「成立時は買い確定」の定義に合わせて、all8に加えてfinal3も必須にしている
final3 = longLowerWick and volStrongOK and macdZeroGC
judge = (all8 and final3) ? "判定:買い" : "判定:見送り"
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// コメント文字列(←txt を必ず先に定義)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fMark(x) => x ? "達成" : "未達"
txt =
"【8項目チェック】 " +
"1 EMA全上向き: " + fMark(chk1) + " " +
"2 黄金隊列: " + fMark(chk2) + " " +
"3 26EMA上2日: " + fMark(chk3) + " " +
"4 MACDゼロ上GC: " + fMark(chk4) + " " +
"5 出来高" + str.tostring(volMinMul) + "-" + str.tostring(volMaxMul) + ": " + fMark(chk5) + " " +
"6 ローソク条件: " + fMark(chk6) + " " +
"7 押し目-" + str.tostring(pullMinPct) + "〜" + str.tostring(pullMaxPct) + "%: " + fMark(chk7) + " " +
"8 ブレイク後押し目: " + fMark(chk8) + " " +
"最終三点(ヒゲ×出来高×MACD): " + (final3 ? "成立" : "未成立") + " " +
judge + " " +
"(参考)出来高倍率=" + (na(volMul) ? "na" : str.tostring(volMul, "#.00")) +
" / 押し目率=" + (na(pullPct) ? "na" : str.tostring(pullPct, "#.0")) + "%" +
" / hist転換=" + (histShrinkToUp ? "YES" : "NO")
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Table(位置は if で確定。三項演算子で改行しない)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
var pos = position.top_right
if panelPos == "右上"
pos := position.top_right
else if panelPos == "左上"
pos := position.top_left
else if panelPos == "右下"
pos := position.bottom_right
else
pos := position.bottom_left
var table t = table.new(pos, 1, 1)
// 描画条件
drawNow = showPanel and (lastBarOnly ? barstate.islast : true)
bg = (all8 and final3) ? color.new(color.lime, 80) : color.new(color.gray, 15)
fg = color.white
if drawNow
table.cell(t, 0, 0, txt, text_color=fg, bgcolor=bg, text_size=size.small)
else
table.cell(t, 0, 0, "", text_color=fg, bgcolor=color.new(color.black, 100))
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 視覚補助
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
plot(ema5, color=color.new(color.yellow, 0), title="EMA5")
plot(ema13, color=color.new(color.orange, 0), title="EMA13")
plot(ema26, color=color.new(color.red, 0), title="EMA26")
plotshape(all8 and final3, title="BUY", style=shape.triangleup, location=location.belowbar,
color=color.new(color.lime, 0), size=size.tiny, text="BUY")
My RSI Fib Range Cloud//SOLO900q99This is basically the close price, optionally “stepped” if you set Bars Per Sample > 1.
2. Central Threshold Band (colored line)
• This is an EMA of the resampled price (default length 34).
• It turns:
• Green when RSI is in bullish fib zones,
• Pink when RSI is in bearish fib zones,
• Grey when RSI is in the middle/neutral area.
3. Sigma Range High (green line) and Sigma Range Low (pink line)
• These are an upper and lower band around price.
• The distance from price is based on how much price has been moving recently (average change).
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)
Ingenuity Crazy Strategy Advance IntraThis indicator works — IF you use it correctly.
Wrong settings = bad results.
That’s why we keep:
🔥 The exact settings
🔥 Market-specific presets
🔥 Live trade examples
INSIDE OUR DISCORD ONLY.
🚫 Do not guess
🚫 Do not freestyle settings
👉 Join the Discord and trade it the way it’s meant to be traded.
discord.gg
Batman SignalBATMAN SIGNAL: Identify Potential Reversal Patterns
The Batman Signal is designed to help spot potential reversal patterns that may indicate institutional activity at key price levels. It looks for a distinct "double rejection" structure, with the crucial second rejection accompanied by a liquidity spike (high volume), suggesting significant market participation.
🔑 KEY FEATURES
• Dynamic Support & Resistance Zones: Automatically calculates and draws key zones on your chart, giving an at-a-glance view of major price reaction levels where 'Batman' patterns are most likely to form.
• Momentum Clusters: See market bias instantly. Clusters of green or red dots in the top margin show where bullish or bearish patterns are actively forming. Nested purple diamonds within these clusters highlight high-volume liquidity spikes. Increasing concentration here can provide an early warning for the next major setup.
• Four Powerful, Independent Alerts: Each alert is a robust signal engineered to catch market turns. Use them separately or in sequence based on your style.
• Non-Repainting, Close-Based Signals: All final confirmation triangles plot ONLY AFTER the bar closes, providing dependable execution signals.
• Volume-Spike Confirmation: Core logic identifies "liquidity spikes" (high volume) at key rejection areas, filtering for significant market participation.
• Full Customization: Tune every aspect from trend sensitivity, zone detection, volume filters, pattern timing and structure to match any asset or timeframe.
🦇 THE FOUR BATMAN SIGNALS
The indicator scans for a specific "double rejection" structure:
• "Left Ear" – initial rejection at a key zone.
• "Right Ear" – volume-confirmed rejection at a similar level.
This creates four distinct, non-repainting alerts:
Bullish Right Ear Alert – Early warning at support.
Bearish Right Ear Alert – Early warning at resistance.
Confirmed Bullish Batman Signal – Final trigger after bar close.
Confirmed Bearish Batman Signal – Final trigger after bar close.
HOW TO READ THE CHART:
• Blue Lines – Dynamic support/resistance zones.
• "R" Labels & Purple Diamonds – Mark developing Right Ear rejections with volume spike.
• Green/Red Triangles – Show the confirmed, final Batman pattern signal.
• Clusters of Green/Red Dots – Show active bullish/bearish pattern zones (top margin).
• Nested Purple Diamonds – Highlight high-volume spikes within clusters.
• Gray EMA – Provides trend context.
⚙️ CUSTOMIZABLE INPUTS
Trend & Zones:
– Trend EMA Period – Adjust baseline trend sensitivity.
– Key Zone Lookback – Set how far back to scan for key levels.
– Zone Tolerance % – Fine-tune the zone width.
Pattern Logic:
– Min/Max Consolidation Bars – Control time window between Left and Right Ear.
– Min Wick Ratio for Right Ear – Filter for strong rejection wicks.
– Min Spike Size (ATR) – Set minimum volatility for the Right Ear.
Volume Filter (Right Ear Only):
– Toggle volume confirmation on/off.
– Volume Lookback Period – Bars used for average volume calculation.
– Min Volume Ratio – Right Ear volume must be this many times above average.
Visual Settings:
– Show/Hide labels and key zones.
– Customize bullish, bearish, and zone colors.
📘 HOW TO TRADE WITH IT
Apply the "Batman Signal" to your chart.
Watch price action at the blue zones and monitor the top-margin dot clusters for active momentum. Nested purple diamonds signal volume spikes.
Set alerts for your preferred signal type (Right Ear for early warning, or final Batman Signal for confirmation).
Alerts are robust and will fire on bar after print.
ALWAYS use sound risk management—define stop-loss and take-profit levels.
Recommended timeframes: 15min and 1 hour for optimal balance.
Works on all timeframes with appropriate tuning.
🔔 IMPORTANT ALERT SETUP TIP
When you change any input setting (e.g., Min Spike Size, Volume Filter), you MUST delete any existing alerts and create new ones.
TradingView saves alerts as a static snapshot of your settings at creation.
This ensures your alerts always match the strategy you see on the chart.
DISCLAIMER:
Note: This indicator is for informational purposes only and does not constitute financial advice.
Users are encouraged to backtest thoroughly and evaluate the indicator's performance in their trading strategy.
takeshi MNO_2Step_Screener_MOU_MOUB_KAKU//@version=5
indicator("MNO_2Step_Screener_MOU_MOUB_KAKU", overlay=true, max_labels_count=500, max_lines_count=500)
// =========================
// Inputs
// =========================
emaSLen = input.int(5, "EMA Short (5)", minval=1)
emaMLen = input.int(13, "EMA Mid (13)", minval=1)
emaLLen = input.int(26, "EMA Long (26)", minval=1)
macdFast = input.int(12, "MACD Fast", minval=1)
macdSlow = input.int(26, "MACD Slow", minval=1)
macdSignal = input.int(9, "MACD Signal", minval=1)
macdZeroTh = input.float(0.2, "MOU: MACD near-zero threshold", step=0.05)
volDays = input.int(5, "Volume avg (days equivalent)", minval=1)
volMinRatio = input.float(1.3, "MOU: Volume ratio min", step=0.1)
volStrong = input.float(1.5, "Strong volume ratio (MOU-B/KAKU)", step=0.1)
volMaxRatio = input.float(3.0, "Volume ratio max (filter)", step=0.1)
wickBodyMult = input.float(2.0, "Pinbar: lowerWick >= body*x", step=0.1)
pivotLen = input.int(20, "Resistance lookback", minval=5)
pullMinPct = input.float(5.0, "Pullback min (%)", step=0.1)
pullMaxPct = input.float(15.0, "Pullback max (%)", step=0.1)
breakLookbackBars = input.int(5, "Valid bars after break", minval=1)
showEMA = input.bool(true, "Plot EMAs")
showLabels = input.bool(true, "Show labels (猛/猛B/確)")
showShapes = input.bool(true, "Show shapes (猛/猛B/確)")
confirmOnClose = input.bool(true, "Signal only on bar close (recommended)")
locChoice = input.string("Below", "Label location", options= )
lblLoc = locChoice == "Below" ? location.belowbar : location.abovebar
// =========================
// EMA
// =========================
emaS = ta.ema(close, emaSLen)
emaM = ta.ema(close, emaMLen)
emaL = ta.ema(close, emaLLen)
plot(showEMA ? emaS : na, color=color.new(color.yellow, 0), title="EMA 5")
plot(showEMA ? emaM : na, color=color.new(color.blue, 0), title="EMA 13")
plot(showEMA ? emaL : na, color=color.new(color.orange, 0), title="EMA 26")
emaUpS = emaS > emaS
emaUpM = emaM > emaM
emaUpL = emaL > emaL
goldenOrder = emaS > emaM and emaM > emaL
above26_2bars = close > emaL and close > emaL
baseTrendOK = (emaUpS and emaUpM and emaUpL) and goldenOrder and above26_2bars
// =========================
// MACD
// =========================
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdGC = ta.crossover(macdLine, macdSig)
macdUp = macdLine > macdLine
macdNearZero = math.abs(macdLine) <= macdZeroTh
macdGCAboveZero = macdGC and macdLine > 0 and macdSig > 0
macdMouOK = macdGC and macdNearZero and macdUp
macdKakuOK = macdGCAboveZero
// =========================
// Volume (days -> bars)
// =========================
sec = timeframe.in_seconds(timeframe.period)
barsPerDay = (sec > 0 and sec < 86400) ? math.round(86400 / sec) : 1
volLookbackBars = math.max(1, volDays * barsPerDay)
volMA = ta.sma(volume, volLookbackBars)
volRatio = volMA > 0 ? (volume / volMA) : na
volumeMouOK = not na(volRatio) and volRatio >= volMinRatio and volRatio <= volMaxRatio
volumeStrongOK = not na(volRatio) and volRatio >= volStrong and volRatio <= volMaxRatio
// =========================
// Candle patterns
// =========================
body = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
pinbar = (body > 0) and (lowerWick >= wickBodyMult * body) and (lowerWick > upperWick) and (close >= open)
bullEngulf = close > open and close < open and close >= open and open <= close
bigBull = close > open and open < emaM and close > emaS and (body > ta.sma(body, 20))
candleOK = pinbar or bullEngulf or bigBull
// =========================
// Resistance / Pullback route
// =========================
res = ta.highest(high, pivotLen)
pullbackPct = res > 0 ? (res - close) / res * 100.0 : na
pullbackOK = not na(pullbackPct) and pullbackPct >= pullMinPct and pullbackPct <= pullMaxPct
brokeRes = ta.crossover(close, res )
barsSinceBreak = ta.barssince(brokeRes)
afterBreakZone = (barsSinceBreak >= 0) and (barsSinceBreak <= breakLookbackBars)
pullbackRouteOK = afterBreakZone and pullbackOK
// =========================
// Signals (猛 / 猛B / 確)
// =========================
mou_pullback = baseTrendOK and volumeMouOK and candleOK and macdMouOK and pullbackRouteOK
mou_breakout = baseTrendOK and ta.crossover(close, res ) and volumeStrongOK and macdKakuOK
cond1 = emaUpS and emaUpM and emaUpL
cond2 = goldenOrder
cond3 = above26_2bars
cond4 = macdKakuOK
cond5 = volumeMouOK
cond6 = candleOK
cond7 = pullbackOK
cond8 = pullbackRouteOK
all8 = cond1 and cond2 and cond3 and cond4 and cond5 and cond6 and cond7 and cond8
final3 = pinbar and macdKakuOK and volumeStrongOK
kaku = all8 and final3
// 確優先(同一足は確だけ出す)
confirmed = confirmOnClose ? barstate.isconfirmed : true
sigKAKU = kaku and confirmed
sigMOU = mou_pullback and not kaku and confirmed
sigMOUB = mou_breakout and not kaku and confirmed
// =========================
// Visualization
// =========================
if showLabels and sigMOU
label.new(bar_index, low, "猛", style=label.style_label_up, color=color.new(color.lime, 0), textcolor=color.black)
if showLabels and sigMOUB
label.new(bar_index, low, "猛B", style=label.style_label_up, color=color.new(color.green, 0), textcolor=color.black)
if showLabels and sigKAKU
label.new(bar_index, low, "確", style=label.style_label_up, color=color.new(color.yellow, 0), textcolor=color.black)
plotshape(showShapes and sigMOU, title="MOU", style=shape.labelup, text="猛", color=color.new(color.lime, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showShapes and sigMOUB, title="MOUB", style=shape.labelup, text="猛B", color=color.new(color.green, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showShapes and sigKAKU, title="KAKU", style=shape.labelup, text="確", color=color.new(color.yellow, 0), textcolor=color.black, location=lblLoc, size=size.small)
// =========================
// Alerts
// =========================
alertcondition(sigMOU, title="MNO_MOU", message="MNO: 猛(押し目)")
alertcondition(sigMOUB, title="MNO_MOU_BREAKOUT", message="MNO: 猛B(ブレイク)")
alertcondition(sigKAKU, title="MNO_KAKU", message="MNO: 確(最終)")
alertcondition(sigMOU or sigMOUB or sigKAKU, title="MNO_ALL", message="MNO: 猛/猛B/確 いずれか")
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)
Coinbase Institutional Flow Alpha1. 核心概念 (The Core Concept)
這不是一套傳統看圖形(如 RSI 或 MACD)的技術指標策略,而是一套基於**「籌碼面」與「市場微結構」的量化系統。 比特幣市場存在兩個平行世界:美國機構投資者(主要使用 Coinbase 美元對)與全球散戶**(主要使用 Binance USDT 對)。這套策略的核心邏輯在於捕捉這兩者之間的**「定價效率落差」**。
This is not a traditional technical analysis strategy based on lagging indicators like RSI or MACD. Instead, it is a quantitative system based on Order Flow and Market Microstructure. The Bitcoin market consists of two parallel worlds: US Institutional Investors (trading on Coinbase USD pairs) and Global Retail Investors (trading on Binance USDT pairs). The core logic of this strategy is to capture the pricing inefficiency gap between these two liquidity pools.
2. 運作原理 (How It Works)
Smart Money 追蹤: 當機構開始大舉買入時,Coinbase 的價格往往會比 Binance 出現短暫且顯著的「溢價(Premium)」。這通常是行情的領先指標。
統計套利模型: 我們開發了一套獨家的演算法,24 小時監控這個溢價缺口的變化。只有當溢價偏離程度達到特定的**統計學異常值(Statistical Anomaly)**時,系統才會判定為「機構進場信號」並執行交易。
過濾雜訊: 我們只抓取真正由資金推動的大趨勢,過濾掉市場上 80% 的無效波動。
Smart Money Tracking: When institutions accumulate heavily, the price on Coinbase often trades at a significant "Premium" compared to Binance. This serves as a powerful leading indicator for price trends.
Statistical Arbitrage Model: We utilize a proprietary algorithm that monitors this premium gap 24/7. Only when the gap deviation hits a specific Statistical Anomaly, does the system identify it as an "Institutional Entry Signal" and execute the trade.
Noise Filtering: The strategy is designed to capture significant trends driven by real capital flow, effectively filtering out 80% of random market noise.
免責聲明 (Disclaimer)
補充說明: 以上策略不保證獲利,僅提供量化交易的想法與實驗數據參考。請注意,市場沒有聖杯,交易結果盈虧自負,本人不承擔任何因使用此策略而產生的資金損失。
Disclaimer: The above strategy does not guarantee profits and is provided solely for sharing quantitative ideas and experimental data. Please note that there is no "Holy Grail" in trading. You are solely responsible for your own PnL, and I assume no liability for any financial losses incurred.
Trend FilterTrend Filter
Summary
Trend Filter is a multi-factor trend-confidence indicator that produces a simple, actionable output: Direction (Up / Down / Ranging) and a normalized Confidence %. It is intended as a decision-support overlay to help traders quickly identify whether a market is trending or rangebound, and how strong that directional bias is.
What it shows
A single line in the on-chart table: Direction (Up / Down / Ranging).
A Confidence % (0–100) that combines multiple normalized market signals into a single score.
Optional notification row when a manually-selected reference timeframe does not match the chart timeframe.
Alert conditions when direction changes to Up, Down, or Ranging.
How the indicator works (concise, non-proprietary explanation)
Trend Filter computes a weighted confidence score from several complementary components, each normalized to a 0–100 scale and combined into a single confidence value. The components and their roles are:
EMA structure & spread (trend breadth)
-Uses three EMAs (fast / mid / slow) computed at lengths that scale with the selected/reference timeframe. The EMA spread (fast vs slow) quantifies directional separation.
HH/HL structure and streaks (price structure)
-Counts higher highs/higher lows (and the reverse) across a scaled lookback to measure whether price structure is predominantly bullish, bearish or mixed.
EMA slope (momentum of trend)
-A robust slope approximation (smoothed) measures whether the short EMA is rising/falling relative to its own smoothed history.
ADX / DMI (trend strength)
-Uses a standard ADX-style component to capture directional persistence and dampen the confidence score when the ADX is weak.
ATR (volatility context)
-ATR expressed as a percentage of price helps detect abnormal volatility regimes which affect the validity of trend signals.
Volume context
-Simple volume vs a short SMA gives a participation signal that increases confidence when moves occur with higher volume.
Each component is capped to avoid outsized influence. Components are scaled by a set of weights (configurable in code) and then combined. The final confidence is lightly smoothed before being used to determine direction and to feed alert conditions.
Important implementation & safety design choices (why it’s not a simple mashup)
Adaptive timeframe scaling: EMA lengths and lookbacks are proportionally scaled based on the chosen reference timeframe (Auto or manual). This preserves relative indicator behavior across 1-minute → Daily timeframes without manual retuning of each parameter.
HH/HL structure plus streaks: Instead of relying solely on moving averages or ADX, the script explicitly measures price structure (HH/HL counts and streaks) and blends that with slope/ADX. This reduces false trending signals on noisy price action.
Normalized, weighted combination with caps: Each component is normalized (0–100) and combined by predefined weights; cap thresholds prevent extreme component values from dominating the result. This is a design intended to produce interpretable confidence % rather than opaque binary outputs.
History and loop safety: The code enforces a cap and protects loop lengths against available historical bars to avoid runtime errors and to ensure the script remains stable on short data series.
Practical guardrails: The script includes notification behavior to highlight manual timeframe mismatches and avoids dynamic indexing patterns that can cause unreliable results on small bar histories.
These design decisions — adaptive scaling, structural HH/HL scoring, capped normalization and explicit safety limits — are the elements that distinguish Trend Filter from simple, single-indicator overlays (EMA-only, ADX-only, etc.) and form the basis for why closed-source protection is reasonable for commercial/invite-only publication.
User controls & recommended usage
Reference Timeframe: Auto (uses chart TF) or choose a manual reference TF (1min → D). When manual TF is selected, the table shows a mismatch warning if the chart TF differs.
Table placement & colors: Positioning and appearance of the on-chart table are configurable.
Confidence thresholds: The indicator uses internal thresholds to mark high/medium/low confidence. Users can interpret the Confidence % relative to those ranges.
Alerts: Built-in alerts fire only on direction changes (to Up, Down, or Ranging). Use alerts as a signal to review the chart rather than an instruction to trade automatically.
How traders typically use it
Add Trend Filter as an overlay to your chart.
Confirm that the recommended reference timeframe is appropriate (Auto will adjust automatically).
Use Direction and Confidence % together: high Confidence + Up (or Down) suggests staying with trend; Ranging suggests avoiding trend-following entries.
Combine this filter with your entry/exit rules (price structure, support/resistance, or your preferred signal generator).
Disclaimers & limitations
This is a decision-support indicator, not an automated execution strategy. It does not place orders and does not provide P/L or backtesting statistics.
Confidence % is an aggregated measure — treat it as context, not a guarantee.
Results vary across symbols and timeframes; use appropriate position sizing and risk controls.
The code intentionally includes history and loop safeguards; on very short histories the indicator may display conservative results.
ICT NY Midnight Range LevelsThis indicator plots key New York midnight reference levels used in ICT-style trading.
Features:
• New York Midnight Open (00:00 NY time) plotted as a red dotted horizontal line
• Highest High and Lowest Low formed between 00:00–00:30 NY time
• Automatic 50% midpoint of the midnight range
• All levels extend to the right and remain visible throughout the trading day
• Large right-side labels displaying level names and exact prices
• Optimized for lower timeframes (30 minutes and below)
Designed for traders who use New York session structure, midnight opens, and range-based entries for precision execution.
Bravo Backtest - Multi Timeframe Fair Value GapsBravo Backtest – Multi Timeframe Fair Value Gaps
This indicator displays Fair Value Gaps (FVGs) across multiple timeframes, with a strong focus on clarity, structure, and non-repainting behavior.
To reduce noise and keep charts clean, only Fair Value Gaps from your current chart timeframe and higher are shown. Lower-timeframe imbalances are intentionally filtered out.
Key features:
- Multi-timeframe Fair Value Gap detection
- Wick-to-wick, three-candle FVG logic
- Non-repainting: all FVGs are confirmed on candle close
- Automatic removal of invalidated FVGs (close through the zone)
- Adjustable lookback period to limit historical zones
- Optional bullish / bearish filtering
- Optional borders that inherit the FVG color
- Clean, professional UI designed for real trading use
This tool is built to support higher-timeframe context, execution clarity, and disciplined charting, making it suitable for both discretionary traders and structured trading models.
Developed and verified by Bravo Backtest.
Auto Harmonic Patterns [Trader-Alex])This indicator is a sophisticated technical analysis tool designed to automate the identification of Harmonic Patterns across financial markets. By utilizing a multi-layered scanning engine, it detects valid geometric structures in price action, helping traders identify high-probability reversal zones (PRZ) with precision.
Whether you are a scalper or a swing trader, this tool streamlines the complex process of measuring Fibonacci ratios, allowing you to focus on execution rather than manual drawing.
Key Features
Multi-Scale Scanning Engine: The indicator runs 5 independent scanning groups simultaneously. This allows it to detect patterns across different market distinct market cycles (micro-structures to macro-trends) within a single timeframe.
Comprehensive Pattern Support: Automatically recognizes a wide range of classic and modern harmonic patterns, including:
Gartley
Bat & Alt Bat
Butterfly
Crab & Deep Crab
Shark
Cypher
Predictive PRZ Technology (Potential Patterns): Unlike standard indicators that only show completed patterns, this tool projects "Potential Patterns" in real-time. It calculates the Potential Reversal Zone (PRZ) based on converging Fibonacci projections, giving you a clear visual of where the D-point (Entry) is likely to form before price arrives.
Smart Filtering & Optimization: To maintain a clean chart, the indicator includes an intelligent filtering system. If multiple patterns are detected in the same area, it automatically evaluates the geometry and risk-to-reward ratio to display only the most optimal setup.
Integrated Trade Management: For every valid pattern, the indicator automatically plots:
Entry Level: The optimal completion point.
Stop Loss (SL): Calculated based on invalidation structures.
Take Profit (TP1 & TP2): Based on standard harmonic retracement targets.
Visual Clarity: Distinguishes between Bullish (Green/Blue tones) and Bearish (Red/Orange tones) setups. Successful historical patterns and currently developing patterns are visually distinct for easy back-testing and live trading.
Disclaimer This tool is for educational and informational purposes only. Trading financial markets involves risk. Past performance of harmonic patterns does not guarantee future results. Always use proper risk management.
-------------------------------------------------------------------------------------
此指標是一套高階的技術分析工具,專為自動化識別金融市場中的「諧波型態 (Harmonic Patterns)」而設計。透過多層次的掃描引擎,它能精準偵測價格行為中的幾何結構,協助交易者快速鎖定高勝率的潛在反轉區 (PRZ)。
無論您是短線交易者還是波段交易者,此工具都能簡化繁瑣的費波那契比例測量過程,讓您能專注於交易決策而非手動繪圖。
核心功能
多維度掃描引擎: 指標內建 5 組獨立的掃描運算邏輯,能夠同時運行。這意味著它能在單一圖表時間週期內,同時捕捉從小級別結構到大級別趨勢的各種型態。
支援多種經典型態: 自動識別市場上主流的諧波結構,包含:
加特利 (Gartley)
蝙蝠與變種蝙蝠 (Bat & Alt Bat)
蝴蝶 (Butterfly)
螃蟹與深海螃蟹 (Crab & Deep Crab)
鯊魚 (Shark)
賽福 (Cypher)
預測性 PRZ 技術 (潛在型態): 不同於一般指標僅顯示「已完成」的歷史型態,本工具具備即時預測功能。它能根據費波那契數列的匯聚點,計算出潛在反轉區 (PRZ),在價格到達前提前標示出預期的 D 點 (入場點)。
智能篩選與優化: 為了保持圖表整潔,指標內建智能過濾系統。當同一區域偵測到多個重疊型態時,系統會自動評估幾何結構與盈虧比,僅顯示條件最優異的一個交易機會。
整合式交易管理: 針對每一個有效型態,指標會自動計算並繪製:
入場價 (Entry): 型態完成的最佳價位。
止損位 (SL): 基於結構失效點的防守位置。
止盈位 (TP1 & TP2): 基於諧波回撤比例的標準獲利目標。
視覺化清晰呈現: 清楚區分看漲 (綠/藍色系) 與看跌 (紅/橙色系) 架構。歷史勝率回測線圖與正在發展中的潛在型態均有不同的視覺樣式,方便用戶進行複盤與實盤操作。
免責聲明 本工具僅供教學與輔助分析使用。金融市場交易具有風險,諧波型態的歷史表現不代表未來獲利保證。請務必做好個人風險管理。
Session Sweep Strategy V3Johannes Spezial FVG Indikator :-) zur erkennung von FVG zu definierbaren Sessionzeiten.
HydraBot v1.2average bias of a bunch of indicators that blah blah blah i need to hit at least so many words to publish this




















