Motif-Motif Chart
takeshi_2Step_Screener_MOU_KAKU_FIXED3//@version=5
indicator("MNO_2Step_Screener_MOU_KAKU_FIXED3", overlay=true, max_labels_count=500)
// =========================
// Inputs
// =========================
emaSLen = input.int(5, "EMA Short (5)")
emaMLen = input.int(13, "EMA Mid (13)")
emaLLen = input.int(26, "EMA Long (26)")
macdFast = input.int(12, "MACD Fast")
macdSlow = input.int(26, "MACD Slow")
macdSignal = input.int(9, "MACD Signal")
macdZeroTh = input.float(0.2, "MOU: MACD near-zero threshold", step=0.05)
volLookback = input.int(5, "Volume MA days", minval=1)
volMinRatio = input.float(1.3, "MOU: Volume ratio min", step=0.1)
volStrong = input.float(1.5, "Strong volume ratio (Breakout/KAKU)", step=0.1)
volMaxRatio = input.float(3.0, "Volume ratio max (filter)", step=0.1)
wickBodyMult = input.float(2.0, "Pinbar: lowerWick >= body*x", step=0.1)
pivotLen = input.int(20, "Resistance lookback", minval=5)
pullMinPct = input.float(5.0, "Pullback min (%)", step=0.1)
pullMaxPct = input.float(15.0, "Pullback max (%)", step=0.1)
breakLookbackBars = input.int(5, "Pullback route: valid bars after break", minval=1)
// --- Breakout route (押し目なし初動ブレイク) ---
useBreakoutRoute = input.bool(true, "Enable MOU Breakout Route (no pullback)")
breakConfirmPct = input.float(0.3, "Break confirm: close > R*(1+%)", step=0.1)
bigBodyLookback = input.int(20, "Break candle body MA length", minval=5)
bigBodyMult = input.float(1.2, "Break candle: body >= MA*mult", step=0.1)
requireCloseNearHigh = input.bool(true, "Break candle: close near high")
closeNearHighPct = input.float(25.0, "Close near high threshold (% of range)", step=1.0)
allowMACDAboveZeroInstead = input.bool(true, "Breakout route: allow MACD GC above zero instead")
// 表示
showEMA = input.bool(true, "Plot EMAs")
showMou = input.bool(true, "Show MOU label")
showKaku = input.bool(true, "Show KAKU label")
showDebugTbl = input.bool(false, "Show debug table (last bar)")
locChoice = input.string("Below Bar", "Label location", options= )
lblLoc = locChoice == "Below Bar" ? location.belowbar : location.abovebar
// =========================
// EMA
// =========================
emaS = ta.ema(close, emaSLen)
emaM = ta.ema(close, emaMLen)
emaL = ta.ema(close, emaLLen)
// plot は if の中に入れない(naで制御)
plot(showEMA ? emaS : na, color=color.new(color.yellow, 0), title="EMA 5")
plot(showEMA ? emaM : na, color=color.new(color.blue, 0), title="EMA 13")
plot(showEMA ? emaL : na, color=color.new(color.orange, 0), title="EMA 26")
emaUpS = emaS > emaS
emaUpM = emaM > emaM
emaUpL = emaL > emaL
goldenOrder = emaS > emaM and emaM > emaL
above26_2days = close > emaL and close > emaL
// 勝率維持の土台(緩めない)
baseTrendOK = (emaUpS and emaUpM and emaUpL) and goldenOrder and above26_2days
// =========================
// MACD
// =========================
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdGC = ta.crossover(macdLine, macdSig)
macdUp = macdLine > macdLine
macdNearZero = math.abs(macdLine) <= macdZeroTh
macdGCAboveZero = macdGC and macdLine > 0 and macdSig > 0
macdMouOK = macdGC and macdNearZero and macdUp
macdBreakOK = allowMACDAboveZeroInstead ? (macdMouOK or macdGCAboveZero) : macdMouOK
// =========================
// Volume
// =========================
volMA = ta.sma(volume, volLookback)
volRatio = volMA > 0 ? (volume / volMA) : na
volumeMouOK = volRatio >= volMinRatio and volRatio <= volMaxRatio
volumeStrongOK = volRatio >= volStrong and volRatio <= volMaxRatio
// =========================
// Candle patterns
// =========================
body = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
pinbar = (lowerWick >= wickBodyMult * body) and (lowerWick > upperWick) and (close >= open)
bullEngulf =
close > open and close < open and
close >= open and open <= close
bigBull =
close > open and
open < emaM and close > emaS and
(body > ta.sma(body, 20))
candleOK = pinbar or bullEngulf or bigBull
// =========================
// Resistance / Pullback route
// =========================
res = ta.highest(high, pivotLen)
pullbackPct = res > 0 ? (res - close) / res * 100.0 : na
pullbackOK = pullbackPct >= pullMinPct and pullbackPct <= pullMaxPct
brokeRes = ta.crossover(close, res )
barsSinceBreak = ta.barssince(brokeRes)
afterBreakZone = (barsSinceBreak >= 0) and (barsSinceBreak <= breakLookbackBars)
pullbackRouteOK = afterBreakZone and pullbackOK
// =========================
// Breakout route (押し目なし初動ブレイク)
// =========================
breakConfirm = close > res * (1.0 + breakConfirmPct / 100.0)
bullBreak = close > open
bodyMA = ta.sma(body, bigBodyLookback)
bigBodyOK = bodyMA > 0 ? (body >= bodyMA * bigBodyMult) : false
rng = math.max(high - low, syminfo.mintick)
closeNearHighOK = not requireCloseNearHigh ? true : ((high - close) / rng * 100.0 <= closeNearHighPct)
mou_breakout =
useBreakoutRoute and
baseTrendOK and
breakConfirm and
bullBreak and
bigBodyOK and
closeNearHighOK and
volumeStrongOK and
macdBreakOK
mou_pullback = baseTrendOK and volumeMouOK and candleOK and macdMouOK and pullbackRouteOK
mou = mou_pullback or mou_breakout
// =========================
// KAKU (Strict): 8条件 + 最終三点
// =========================
cond1 = emaUpS and emaUpM and emaUpL
cond2 = goldenOrder
cond3 = above26_2days
cond4 = macdGCAboveZero
cond5 = volumeMouOK
cond6 = candleOK
cond7 = pullbackOK
cond8 = pullbackRouteOK
all8_strict = cond1 and cond2 and cond3 and cond4 and cond5 and cond6 and cond7 and cond8
final3 = pinbar and macdGCAboveZero and volumeStrongOK
kaku = all8_strict and final3
// =========================
// Display (統一ラベル)
// =========================
showKakuNow = showKaku and kaku
showMouPull = showMou and mou_pullback and not kaku
showMouBrk = showMou and mou_breakout and not kaku
plotshape(showMouPull, title="MOU_PULLBACK", style=shape.labelup, text="猛",
color=color.new(color.lime, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showMouBrk, title="MOU_BREAKOUT", style=shape.labelup, text="猛B",
color=color.new(color.lime, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showKakuNow, title="KAKU", style=shape.labelup, text="確",
color=color.new(color.yellow, 0), textcolor=color.black, location=lblLoc, size=size.small)
// =========================
// Alerts
// =========================
alertcondition(mou, title="MNO_MOU", message="MNO: MOU triggered")
alertcondition(mou_breakout, title="MNO_MOU_BREAKOUT", message="MNO: MOU Breakout triggered")
alertcondition(mou_pullback, title="MNO_MOU_PULLBACK", message="MNO: MOU Pullback triggered")
alertcondition(kaku, title="MNO_KAKU", message="MNO: KAKU triggered")
// =========================
// Debug table (optional)
// =========================
var table t = table.new(position.top_right, 2, 14, border_width=1, border_color=color.new(color.white, 60))
fRow(_name, _cond, _r) =>
bg = _cond ? color.new(color.lime, 70) : color.new(color.red, 80)
tx = _cond ? "OK" : "NO"
table.cell(t, 0, _r, _name, text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(t, 1, _r, tx, text_color=color.white, bgcolor=bg)
if showDebugTbl and barstate.islast
// ❗ colspanは使えないので2セルでヘッダーを作る
table.cell(t, 0, 0, "MNO Debug", text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(t, 1, 0, "", text_color=color.white, bgcolor=color.new(color.black, 0))
fRow("BaseTrend", baseTrendOK, 1)
fRow("MOU Pullback", mou_pullback, 2)
fRow("MOU Breakout", mou_breakout, 3)
fRow("Break confirm", breakConfirm, 4)
fRow("Break big body", bigBodyOK, 5)
fRow("Break close high", closeNearHighOK, 6)
fRow("Break vol strong", volumeStrongOK, 7)
fRow("Break MACD", macdBreakOK, 8)
fRow("KAKU all8", all8_strict, 9)
fRow("KAKU final3", final3, 10)
fRow("MOU any", mou, 11)
fRow("KAKU", kaku, 12)
indicator("MouNoOkite_InitialMove_Screener", overlay=true)//@version=5
indicator("猛の掟・初動スクリーナー(5EMA×MACD×出来高×ローソク)", overlay=true, max_labels_count=500)
// =========================
// Inputs
// =========================
emaSLen = input.int(5, "EMA Short (5)")
emaMLen = input.int(13, "EMA Mid (13)")
emaLLen = input.int(26, "EMA Long (26)")
macdFast = input.int(12, "MACD Fast")
macdSlow = input.int(26, "MACD Slow")
macdSignal = input.int(9, "MACD Signal")
volLookback = input.int(5, "出来高平均(日数)", minval=1)
volMinRatio = input.float(1.3, "出来高倍率(初動点灯)", step=0.1)
volStrong = input.float(1.5, "出来高倍率(本物初動)", step=0.1)
volMaxRatio = input.float(2.0, "出来高倍率(上限目安)", step=0.1)
wickBodyMult = input.float(2.0, "ピンバー判定: 下ヒゲ >= (実体×倍率)", step=0.1)
pivotLen = input.int(20, "直近高値/レジスタンス判定のLookback", minval=5)
pullMinPct = input.float(5.0, "押し目最小(%)", step=0.1)
pullMaxPct = input.float(15.0, "押し目最大(%)", step=0.1)
showDebug = input.bool(true, "デバッグ表示(条件チェック)")
// =========================
// EMA
// =========================
emaS = ta.ema(close, emaSLen)
emaM = ta.ema(close, emaMLen)
emaL = ta.ema(close, emaLLen)
plot(emaS, color=color.new(color.yellow, 0), title="EMA 5")
plot(emaM, color=color.new(color.blue, 0), title="EMA 13")
plot(emaL, color=color.new(color.orange, 0), title="EMA 26")
emaUpS = emaS > emaS
emaUpM = emaM > emaM
emaUpL = emaL > emaL
// 26EMA上に2日定着
above26_2days = close > emaL and close > emaL
// 黄金隊列
goldenOrder = emaS > emaM and emaM > emaL
// =========================
// MACD
// =========================
= ta.macd(close, macdFast, macdSlow, macdSignal)
// ヒストグラム縮小(マイナス圏で上向きの準備)も見たい場合の例
histShrinking = math.abs(macdHist) < math.abs(macdHist )
histUp = macdHist > macdHist
// ゼロライン上でGC(最終シグナル)
macdGCAboveZero = ta.crossover(macdLine, macdSig) and macdLine > 0 and macdSig > 0
// 参考:ゼロ直下で上昇方向(勢い準備)
macdRisingNearZero = (macdLine < 0) and (macdLine > macdLine ) and (math.abs(macdLine) <= math.abs(0.5))
// =========================
// Volume
// =========================
volMA = ta.sma(volume, volLookback)
volRatio = volMA > 0 ? (volume / volMA) : na
volumeOK = volRatio >= volMinRatio and volRatio <= volMaxRatio
volumeStrongOK = volRatio >= volStrong
// =========================
// Candle patterns
// =========================
body = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
// 長い下ヒゲ(ピンバー系): 実体が小さく、下ヒゲが優位
pinbar = (lowerWick >= wickBodyMult * body) and (lowerWick > upperWick) and (close >= open)
// 陽線包み足(前日陰線を包む)
bullEngulf =
close > open and close < open and
close >= open and open <= close
// 5EMA・13EMA を貫く大陽線(勢い)
bigBull =
close > open and
open < emaM and close > emaS and
(body > ta.sma(body, 20)) // “相対的に大きい”目安
candleOK = pinbar or bullEngulf or bigBull
// =========================
// 押し目 (-5%〜-15%) & レジブレ後
// =========================
recentHigh = ta.highest(high, pivotLen)
pullbackPct = recentHigh > 0 ? (recentHigh - close) / recentHigh * 100.0 : na
pullbackOK = pullbackPct >= pullMinPct and pullbackPct <= pullMaxPct
// “レジスタンスブレイク”簡易定義:直近pivotLen高値を一度上抜いている
// → その後に押し目位置にいる(現在が押し目)
brokeResistance = ta.crossover(close, recentHigh ) or (close > recentHigh )
afterBreakPull = brokeResistance or brokeResistance or brokeResistance or brokeResistance or brokeResistance
breakThenPullOK = afterBreakPull and pullbackOK
// =========================
// 最終三点シグナル(ヒゲ × 出来高 × MACD)
// =========================
final3 = pinbar and macdGCAboveZero and volumeStrongOK
// =========================
// 猛の掟 8条件チェック(1つでも欠けたら「見送り」)
// =========================
// 1) 5EMA↑ 13EMA↑ 26EMA↑
cond1 = emaUpS and emaUpM and emaUpL
// 2) 5>13>26 黄金隊列
cond2 = goldenOrder
// 3) ローソク足が26EMA上に2日定着
cond3 = above26_2days
// 4) MACD(12,26,9) ゼロライン上でGC
cond4 = macdGCAboveZero
// 5) 出来高が直近5日平均の1.3〜2.0倍
cond5 = volumeOK
// 6) ピンバー or 包み足 or 大陽線
cond6 = candleOK
// 7) 押し目 -5〜15%
cond7 = pullbackOK
// 8) レジスタンスブレイク後の押し目
cond8 = breakThenPullOK
all8 = cond1 and cond2 and cond3 and cond4 and cond5 and cond6 and cond7 and cond8
// =========================
// 判定(2択のみ)
// =========================
isBuy = all8 and final3
decision = isBuy ? "買い" : "見送り"
// =========================
// 表示
// =========================
plotshape(isBuy, title="BUY", style=shape.labelup, text="買い", color=color.new(color.lime, 0), textcolor=color.black, location=location.belowbar, size=size.small)
plotshape((not isBuy) and all8, title="ALL8_OK_but_noFinal3", style=shape.labelup, text="8条件OK (最終3未)", color=color.new(color.yellow, 0), textcolor=color.black, location=location.belowbar, size=size.tiny)
// デバッグ(8項目チェック結果)
if showDebug and barstate.islast
var label dbg = na
label.delete(dbg)
txt =
"【8項目チェック】 " +
"1 EMA全上向き: " + (cond1 ? "達成" : "未達") + " " +
"2 黄金隊列: " + (cond2 ? "達成" : "未達") + " " +
"3 26EMA上2日: " + (cond3 ? "達成" : "未達") + " " +
"4 MACDゼロ上GC: " + (cond4 ? "達成" : "未達") + " " +
"5 出来高1.3-2.0: "+ (cond5 ? "達成" : "未達") + " " +
"6 ローソク条件: " + (cond6 ? "達成" : "未達") + " " +
"7 押し目5-15%: " + (cond7 ? "達成" : "未達") + " " +
"8 ブレイク後押し目: " + (cond8 ? "達成" : "未達") + " " +
"最終三点(ヒゲ×出来高×MACD): " + (final3 ? "成立" : "未成立") + " " +
"判定: " + decision
dbg := label.new(bar_index, high, txt, style=label.style_label_left, textcolor=color.white, color=color.new(color.black, 0))
// アラート
alertcondition(isBuy, title="猛の掟 BUY", message="猛の掟: 買いシグナル(8条件+最終三点)")
DR/IDR Break .5 TPDR/IDR Extension Breakout with Custom Stop
This strategy is a systematic, counter-trend, and momentum-based system designed for intraday trading. It operates on the principle of an Opening Range Breakout (ORB), utilizing the initial market consolidation to project high-probability targets, while offering multiple methods for managing risk.
1. Market Identification (The Opening Range)
The strategy begins by defining the market's initial boundaries and volatility:
Session Window: The strategy calculates the Opening Range (OR) over a user-defined time period (default: 9:30 AM to 10:30 AM New York Time).
ORB Levels: Two key price levels are established and locked once the time window closes:
Wick High/Low: The absolute highest and lowest prices of the session. These serve as the entry trigger lines.
Body High/Low (Shaded Range): The highest and lowest open/close prices of the session. The height of this range is used to calculate the Take Profit and Stop Loss levels.
2. Entry Rule (The Breakout)
The strategy is passive until the range is violated, looking for a strong move out of the consolidation area.
Trigger Condition: A trade is signaled when a candle closes either:
Above the Wick High (for a Long entry).
Below the Wick Low (for a Short entry).
Execution: The entry is a Market Order executed on the candle that meets the trigger condition, subject to a user-defined Entry Delay (default 0 bars, meaning the entry is taken immediately upon the breakout candle's close).
Direction Control: The user can select to trade Long Only, Short Only, or Both.
3. Exit and Risk Management
All trades are placed with simultaneous Take Profit and Stop Loss orders (a bracket order) once the entry is filled.
A. Take Profit (TP)
The Take Profit is set at the 0.5 Extension of the Shaded Range (Body Range).
Calculation: The distance from the Body High/Low to the TP level is exactly 50% of the total height of the Shaded Range.
B. Stop Loss (SL)
The Stop Loss is dynamically calculated based on a user-selected method for risk control:
Range 0.5 (Body Range): The Stop Loss is placed an equal distance (0.5 times the Body Range height) outside the opposite side of the Body Range.
Example (Long): If entry is above the Wick High, the SL is set 0.5 times the Body Range height below the Body Low.
ATR Multiple: The Stop Loss distance is determined by the asset's recent volatility.
Calculation: The distance is calculated as a user-defined Multiplier (default 2.0) times the Average True Range (ATR).
Recent Swing Low/High: The Stop Loss is placed based on a structural level defined by recent price action.
Long Entry: SL is placed at the Lowest Swing Low within a user-defined lookback period.
Short Entry: SL is placed at the Highest Swing High within a user-defined lookback period.
Summary of Workflow
The market sets the Wick and Body boundaries (e.g., 9:30–10:30 AM).
Price breaks and closes beyond a Wick boundary, triggering a signal.
The trade enters after the specified delay.
A bracket order is placed: TP is fixed at the 0.5 Extension, and SL is set based on the user's chosen risk method.
The trade is closed upon reaching either the TP or the SL level.
Fat Tony's Composite Momentum + ROC (v0.4)Fat Tony's Composite Momentum + ROC (v0.4)
Option guy settings and indicators
Multi-MA + RSI Pullback Strategy (Jordan)1️⃣ Strategy logic I’ll code
From your screenshots:
Indicators
• EMAs: 600 / 200 / 100 / 50
• RSI: length 6, levels 80 / 20
Rules (simplified so a script can handle them):
• Use a higher-timeframe trend filter (15m or 1h) using the EMAs.
• Take entries on the chart timeframe (you can use 1m or 5m).
• Long:
• Higher-TF trend is up.
• Price is pulling back into a zone (between 50 EMA and 100 EMA on the entry timeframe – this approximates your 50–61% retrace).
• RSI crosses below 20 (oversold).
• Short:
• Higher-TF trend is down.
• Price pulls back between 50 & 100 EMAs.
• RSI crosses above 80 (overbought).
• Exits: ATR-based stop + take-profit with adjustable R:R (2:1 or 3:1).
• Max 4 trades per day.
News filter & “only trade gold” you handle manually (run it on XAUUSD and avoid news times yourself – TradingView can’t read the economic calendar from code).
True Gap Finder with Revisit DetectionTrue Gap Finder with Revisit Detection
This indicator is a powerful tool for intraday traders to identify and track price gaps. Unlike simple gap indicators, this script actively tracks the status of the gap, visualizing the void until it is filled (revisited) by price.
Key Features:
Active Gap Tracking: Finds gap-up and gap-down occurrences (where Low > Previous High or High < Previous Low) and actively tracks them.
Gap Zones (Clouds): Visually shades the empty "gap zone" (the void between the gap candles), making it instantly obvious where price needs to travel to fill the gap. The cloud disappears automatically once the gap is filled.
Dynamic Labels: automatically displays price labels at the origin of the gap, showing the specific price range (High-Low) that constitutes the gap. Labels are positioned intelligently to avoid cluttering current price action.
Alerts: Configurable alerts notify you the moment a gap is filled.
Customization: Full control over colors, clouds, labels, and alert settings to match your chart style.
How it works: The indicator tracks the most recent gap. If a new gap forms, it becomes the active focus. When price moves back to "close" or "fill" this gap area, the lines and clouds automatically stop plotting, giving you a clean chart that focuses only on open business.
Dynamische Open/Close Levels mit Historie🎯 Key Features
This indicator provides clean, configurable horizontal lines showing the Open and Close prices of a higher chosen timeframe (e.g., the last 5-minute candle), serving as dynamic support and resistance levels.
Unlike traditional indicators that draw messy "steps" across your entire chart, this tool is designed for clarity and precise control.
Controlled History: Easily define how many of the last completed periods (e.g., 5-minute blocks) should remain visible on the chart. Set to 0 for only the current, active levels.
No Stepladder Effect: Uses advanced drawing methods (line.new and object management) to ensure the historical levels remain static and do not clutter your chart history.
Dynamic Labels: The labels (e.g., "Open (5)") automatically adjust to show the timeframe you configured in the indicator settings, eliminating confusion when switching timeframes.
Customizable: Full control over colors, line length, and label positioning/size.
💡 Ideal Use Case
Perfect for scalpers and day traders operating on lower timeframes (1m, 3m) who want to quickly visualize and respect crucial price action levels from a higher context (e.g., 5m, 15m, 1h).
SCOTTGO Advanced MACD🌟 Custom MACD: Enhanced Visuals & Crossover Signals
This indicator is a highly customized version of the traditional Moving Average Convergence Divergence (MACD) oscillator, designed to provide clear, immediate visual confirmation of signal line crossovers and zero-line crossings.
Core Features:
MACD Crossover Shadow Fill: The area between the MACD line and the Signal line is filled with a customizable shadow. This instantly visualizes whether the MACD is above (bullish crossover) or below (bearish crossover) the Signal line.
Signal Crossover Markers (Arrows & Dots):
Crossover Dot: A small, configurable solid dot is plotted exactly at the point where the MACD and Signal lines intersect, providing pinpoint accuracy for the crossover event.
Crossover Arrows: Customizable up (green) and down (red) arrows are plotted using a small numerical offset from the crossover point, ensuring visibility without cluttering the indicator lines.
Zero-Line Crossing Markers: Distinct, small markers (circles/diamonds) are used to signal when the MACD line crosses the zero line, indicating a shift in momentum relative to the baseline.
Customizable MA Type: The user can select either Exponential Moving Average (EMA) or Simple Moving Average (SMA) for both the MACD oscillator calculation and the signal line calculation.
This indicator is ideal for traders who rely on MACD crossovers and require precise, configurable visual feedback directly on the chart.
Cup & Handle Finder by Mashrab🚀 New Tool Alert: The "Perfect Cup" Finder
Hey everyone! I’ve built a custom indicator to help us find high-quality Cup & Handle setups before they breakout.
Most scripts just look for random highs and lows, but this one uses a geometric algorithm to ensure the base is actually round (avoiding those messy V-shapes).
How it works:
🔵 Blue Arc: This marks a verified, institutional-quality Cup.
🟠 Orange Box: This is the "Handle Zone." If you see this connecting to the current candle, it means the setup is live and ready for a potential entry!
Best Usage:
Works best on Weekly (1W) charts.
It’s designed to be an "Early Warning" system—alerting you while the handle is still forming so you don't miss the move.
Give it a try and let me know what you find! 📉📈
Liquidity Sweep + FVG Entry Model//@version=5
indicator("Liquidity Sweep + FVG Entry Model", overlay = true, max_labels_count = 500, max_lines_count = 500)
// Just to confirm indicator is loaded, always plot close:
plot(close, color = color.new(color.white, 0))
// ─────────────────────────────────────────────
// PARAMETERS
// ─────────────────────────────────────────────
len = input.int(5, "Liquidity Lookback")
tpMultiplier = input.float(2.0, "TP Distance Multiplier")
// ─────────────────────────────────────────────
// LIQUIDITY SWEEP DETECTION
// ─────────────────────────────────────────────
lowestPrev = ta.lowest(low, len)
highestPrev = ta.highest(high, len)
sweepLow = low < lowestPrev and close > lowestPrev
sweepHigh = high > highestPrev and close < highestPrev
// Plot liquidity levels
plot(lowestPrev, "Liquidity Low", color = color.new(color.blue, 40), style = plot.style_line)
plot(highestPrev, "Liquidity High", color = color.new(color.red, 40), style = plot.style_line)
// ─────────────────────────────────────────────
// DISPLACEMENT DETECTION
// ─────────────────────────────────────────────
bullDisp = sweepLow and close > open and close > close
bearDisp = sweepHigh and close < open and close < close
// ─────────────────────────────────────────────
// FAIR VALUE GAP (FVG)
// ─────────────────────────────────────────────
bullFVG = low > high
bearFVG = high < low
// we’ll store the last FVG lines
var line fvgTop = na
var line fvgBottom = na
// clear old FVG lines when new one appears
if bullFVG or bearFVG
if not na(fvgTop)
line.delete(fvgTop)
if not na(fvgBottom)
line.delete(fvgBottom)
// Bullish FVG box
if bullFVG
fvgTop := line.new(bar_index , high , bar_index, high , extend = extend.right, color = color.new(color.green, 60))
fvgBottom := line.new(bar_index , low, bar_index, low, extend = extend.right, color = color.new(color.green, 60))
// Bearish FVG box
if bearFVG
fvgTop := line.new(bar_index , low , bar_index, low , extend = extend.right, color = color.new(color.red, 60))
fvgBottom := line.new(bar_index , high, bar_index, high, extend = extend.right, color = color.new(color.red, 60))
// ─────────────────────────────────────────────
// ENTRY, SL, TP CONDITIONS
// ─────────────────────────────────────────────
var line slLine = na
var line tp1Line = na
var line tp2Line = na
f_deleteLineIfExists(line_id) =>
if not na(line_id)
line.delete(line_id)
if bullDisp and bullFVG
sl = low
tp1 = close + (close - sl) * tpMultiplier
tp2 = close + (close - sl) * (tpMultiplier * 1.5)
f_deleteLineIfExists(slLine)
f_deleteLineIfExists(tp1Line)
f_deleteLineIfExists(tp2Line)
slLine := line.new(bar_index, sl, bar_index + 1, sl, extend = extend.right, color = color.red)
tp1Line := line.new(bar_index, tp1, bar_index + 1, tp1, extend = extend.right, color = color.green)
tp2Line := line.new(bar_index, tp2, bar_index + 1, tp2, extend = extend.right, color = color.green)
label.new(bar_index, close, "BUY Entry FVG Retest SL Below Sweep",
style = label.style_label_up, color = color.new(color.green, 0), textcolor = color.white)
if bearDisp and bearFVG
sl = high
tp1 = close - (sl - close) * tpMultiplier
tp2 = close - (sl - close) * (tpMultiplier * 1.5)
f_deleteLineIfExists(slLine)
f_deleteLineIfExists(tp1Line)
f_deleteLineIfExists(tp2Line)
slLine := line.new(bar_index, sl, bar_index + 1, sl, extend = extend.right, color = color.red)
tp1Line := line.new(bar_index, tp1, bar_index + 1, tp1, extend = extend.right, color = color.green)
tp2Line := line.new(bar_index, tp2, bar_index + 1, tp2, extend = extend.right, color = color.green)
label.new(bar_index, close, "SELL Entry FVG Retest SL Above Sweep",
style = label.style_label_down, color = color.new(color.red, 0), textcolor = color.white)
Entry Scanner Conservative Option AKeeping it simple,
Trend,
RSI,
Stoch RSI,
MACD, checked.
Do not have entry where there is noise on selection, look for cluster of same entry signals.
If you can show enough discipline, you will be profitable.
CT
Bar Number IndicatorBar Number Indicator
This Pine Script indicator is designed to help intraday traders by automatically numbering candlesticks within a user-defined trading session. This is particularly useful for strategies that rely on specific bar counts (e.g., tracking the 1st, 18th, or 81st bar of the day).
Key Features:
Session-Based Counting: Automatically resets the count at the start of each new session (default 09:30 - 16:00).
Timezone Flexibility: Includes a dropdown to select your specific trading timezone (e.g., America/New_York), ensuring accurate session start times regardless of your local time or the exchange's default setting.
Smart Display Modes: Choose to show "All" numbers, or filter for "Odd" / "Even" numbers to keep your chart clean.
Custom Positioning: Easily place the numbers Above or Below the candlesticks.
Minimalist Design: Numbers are displayed as floating text without distracting background bubbles.
takeshi GPT//@version=5
indicator("猛の掟・初動スクリーナーGPT", overlay = true, timeframe = "", timeframe_gaps = true)
// ======================================================
// ■ 1. パラメータ設定
// ======================================================
// EMA長
emaFastLen = input.int(5, "短期EMA (5)", minval = 1)
emaMidLen = input.int(13, "中期EMA (13)", minval = 1)
emaSlowLen = input.int(26, "長期EMA (26)", minval = 1)
// 出来高
volMaLen = input.int(5, "出来高平均期間", minval = 1)
volMultInitial = input.float(1.3, "出来高 初動ライン (×)", minval = 1.0, step = 0.1)
volMultStrong = input.float(1.5, "出来高 本物ライン (×)", minval = 1.0, step = 0.1)
// 押し目・レジスタンス
pullbackLookback = input.int(20, "直近高値の探索期間", minval = 5)
pullbackMinPct = input.float(5.0, "押し目下限 (%)", minval = 0.0, step = 0.1)
pullbackMaxPct = input.float(15.0, "押し目上限 (%)", minval = 0.0, step = 0.1)
// ピンバー判定パラメータ
pinbarWickRatio = input.float(2.0, "ピンバー下ヒゲ/実体 比率", minval = 1.0, step = 0.5)
pinbarMaxUpperPct = input.float(25.0, "ピンバー上ヒゲ比率上限 (%)", minval = 0.0, step = 1.0)
// 大陽線判定
bigBodyPct = input.float(2.0, "大陽線の最低値幅 (%)", minval = 0.1, step = 0.1)
// ======================================================
// ■ 2. 基本テクニカル計算
// ======================================================
emaFast = ta.ema(close, emaFastLen)
emaMid = ta.ema(close, emaMidLen)
emaSlow = ta.ema(close, emaSlowLen)
// MACD
= ta.macd(close, 12, 26, 9)
// 出来高
volMa = ta.sma(volume, volMaLen)
// 直近高値(押し目判定用)
recentHigh = ta.highest(high, pullbackLookback)
drawdownPct = (recentHigh > 0) ? (recentHigh - close) / recentHigh * 100.0 : na
// ======================================================
// ■ 3. A:トレンド(初動)条件
// ======================================================
// 1. 5EMA↑ 13EMA↑ 26EMA↑
emaUpFast = emaFast > emaFast
emaUpMid = emaMid > emaMid
emaUpSlow = emaSlow > emaSlow
condTrendUp = emaUpFast and emaUpMid and emaUpSlow
// 2. 黄金並び 5EMA > 13EMA > 26EMA
condGolden = emaFast > emaMid and emaMid > emaSlow
// 3. ローソク足が 26EMA 上に2日定着
condAboveSlow2 = close > emaSlow and close > emaSlow
// ======================================================
// ■ 4. B:モメンタム(MACD)条件
// ======================================================
// ヒストグラム縮小+上向き
histShrinkingUp = (math.abs(histLine) < math.abs(histLine )) and (histLine > histLine )
// ゼロライン直下〜直上での上向き
nearZeroRange = 0.5 // ゼロライン±0.5
macdNearZero = math.abs(macdLine) <= nearZeroRange
// MACDが上向き
macdTurningUp = macdLine > macdLine
// MACDゼロライン上でゴールデンクロス
macdZeroCrossUp = macdLine > signalLine and macdLine <= signalLine and macdLine > 0
// B条件:すべて
condMACD = histShrinkingUp and macdNearZero and macdTurningUp and macdZeroCrossUp
// ======================================================
// ■ 5. C:需給(出来高)条件
// ======================================================
condVolInitial = volume > volMa * volMultInitial // 1.3倍〜 初動点灯
condVolStrong = volume > volMa * volMultStrong // 1.5倍〜 本物初動
condVolume = condVolInitial // 「8掟」では1.3倍以上で合格
// ======================================================
// ■ 6. D:ローソク足パターン
// ======================================================
body = math.abs(close - open)
upperWick = high - math.max(close, open)
lowerWick = math.min(close, open) - low
rangeAll = high - low
// 安全対策:0除算回避
rangeAllSafe = rangeAll == 0.0 ? 0.0000001 : rangeAll
bodyPct = body / close * 100.0
// ● 長い下ヒゲ(ピンバー)
lowerToBodyRatio = (body > 0) ? lowerWick / body : 0.0
upperPct = upperWick / rangeAllSafe * 100.0
isBullPinbar = lowerToBodyRatio >= pinbarWickRatio and upperPct <= pinbarMaxUpperPct and close > open
// ● 陽線包み足(bullish engulfing)
prevBearish = close < open
isEngulfingBull = close > open and prevBearish and close >= open and open <= close
// ● 5EMA・13EMAを貫く大陽線
crossFast = open < emaFast and close > emaFast
crossMid = open < emaMid and close > emaMid
isBigBody = bodyPct >= bigBodyPct
isBigBull = close > open and (crossFast or crossMid) and isBigBody
// D条件:どれか1つでOK
condCandle = isBullPinbar or isEngulfingBull or isBigBull
// ======================================================
// ■ 7. E:価格帯(押し目位置 & レジスタンスブレイク)
// ======================================================
// 7. 押し目 -5〜15%
condPullback = drawdownPct >= pullbackMinPct and drawdownPct <= pullbackMaxPct
// 8. レジスタンス突破 → 押し目 → 再上昇
// 直近 pullbackLookback 本の高値をレジスタンスとみなす(現在足除く)
resistance = ta.highest(close , pullbackLookback)
// レジスタンスブレイクが起きたバーからの経過本数
brokeAbove = ta.barssince(close > resistance)
// ブレイク後に一度レジ上まで戻したか
pulledBack = brokeAbove != na ? ta.lowest(low, brokeAbove + 1) < resistance : false
// 現在は再上昇方向か
reRising = close > close
condBreakPull = (brokeAbove != na) and (brokeAbove <= pullbackLookback) and pulledBack and reRising
// ======================================================
// ■ 8. 最終 8条件 & 三点シグナル
// ======================================================
// 8つの掟
condA = condTrendUp and condGolden and condAboveSlow2
condB = condMACD
condC = condVolume
condD = condCandle
condE = condPullback and condBreakPull
all_conditions = condA and condB and condC and condD and condE
// 🟩 最終三点シグナル
// 1. 長い下ヒゲ 2. MACDゼロライン上GC 3. 出来高1.5倍以上
threePoint = isBullPinbar and macdZeroCrossUp and condVolStrong
// 「買い確定」= 8条件すべて + 三点シグナル
buy_confirmed = all_conditions and threePoint
// ======================================================
// ■ 9. チャート表示 & スクリーナー用出力
// ======================================================
// EMA表示
plot(emaFast, color = color.orange, title = "EMA 5")
plot(emaMid, color = color.new(color.blue, 10), title = "EMA 13")
plot(emaSlow, color = color.new(color.green, 20), title = "EMA 26")
// 初動シグナル
plotshape(
all_conditions and not buy_confirmed,
title = "初動シグナル(掟8条件クリア)",
style = shape.labelup,
color = color.new(color.yellow, 0),
text = "初動",
location = location.belowbar,
size = size.small)
// 三点フルシグナル(買い確定)
plotshape(
buy_confirmed,
title = "三点フルシグナル(買い確定)",
style = shape.labelup,
color = color.new(color.lime, 0),
text = "買い",
location = location.belowbar,
size = size.large)
// スクリーナー用 series 出力(非表示)
plot(all_conditions ? 1 : 0, title = "all_conditions (8掟クリア)", display = display.none)
plot(buy_confirmed ? 1 : 0, title = "buy_confirmed (三点+8掟)", display = display.none)
ATR + True RangeOne indicator for ATR & TR its a common indictor which can be used as one
instead of 2 different its is trial mode only not to be used with out other references
Top Detector V2 This indicator detects valid tops for future double tops. Once a top is confirmed, it displays an entry line for a potential entry point and a stop-loss line for a potential stop loss.
The indicator is fully programmable.
PCR Put-Call Ratio//@version=5
indicator("PCR Put-Call Ratio", overlay=false, precision=4)
// Input parameters
pcrLength = input(20, "PCR Length", group="Settings")
maLength = input(5, "MA Length", group="Settings")
showOI = input(true, "Use Open Interest", group="Settings")
// Get PCR data from CBOE (requires daily data availability)
pcrData = request.security("CBOE:PC", "D", close)
// Calculate moving average of PCR
pcrMA = ta.sma(pcrData, maLength)
// Levels for interpretation
overbought = 1.2
oversold = 0.6
neutral = 0.9
// Plot PCR value
plot(pcrData, title="PCR Value", color=color.blue, linewidth=2)
plot(pcrMA, title="PCR MA", color=color.orange, linewidth=1)
// Add reference lines
hline(overbought, "Overbought (Bearish)", color.red, linestyle=hline.style_dashed)
hline(neutral, "Neutral", color.gray, linestyle=hline.style_dotted)
hline(oversold, "Oversold (Bullish)", color.green, linestyle=hline.style_dashed)
// Background coloring based on sentiment
bgColor = pcrData > overbought ? color.new(color.red, 80) :
pcrData < oversold ? color.new(color.green, 80) :
color.new(color.gray, 90)
bgcolor(bgColor)
ICT Premium/Discount Zones [Exponential-X]Premium/Discount Zones - Visual Market Structure Tool
Overview
This indicator helps traders visualize premium and discount price zones based on recent market structure. It automatically identifies swing highs and lows within a specified lookback period and divides the price range into three key areas: Premium Zone, Equilibrium, and Discount Zone.
What This Indicator Does
The script continuously monitors price action and calculates:
Highest High and Lowest Low within the lookback period
Equilibrium Level - the midpoint between the swing high and low
Premium Zone - the area from equilibrium to the swing high (typically viewed as relatively expensive price levels)
Discount Zone - the area from the swing low to equilibrium (typically viewed as relatively cheap price levels)
Core Calculation Method
The indicator uses pivot point logic to identify significant swing highs and lows based on the pivot strength parameter. It then calculates the highest high and lowest low over the specified lookback period. The equilibrium is computed as the arithmetic mean of these two extremes, creating a fair value reference point.
The zones are dynamically updated as new price data becomes available, ensuring the visualization remains relevant to current market conditions.
Key Features
Dynamic Zone Detection
Automatically adjusts zones based on recent price action
Uses customizable lookback period for flexibility across different timeframes
Employs pivot strength parameter to filter out minor price fluctuations
Visual Clarity
Color-coded zones for easy identification (red for premium, green for discount)
Optional equilibrium line display
Adjustable zone label placement
Customizable color schemes to match your charting preferences
Alert Capabilities
Alerts when price enters the premium zone
Alerts when price enters the discount zone
Alerts when price returns to equilibrium
Helps traders monitor key zone interactions without constant chart watching
Customization Options
Adjustable lookback period (5-500 bars)
Configurable pivot strength for swing detection (1-20 bars)
Control over box extension into the future
Toggle labels and equilibrium line on/off
Full color customization for all visual elements
How to Use This Indicator
Setup
Add the indicator to your chart
Adjust the lookback period to match your trading timeframe (shorter for intraday, longer for swing trading)
Set pivot strength to filter out noise (higher values for major swings, lower for more frequent updates)
Customize colors and labels to your preference
Interpretation
Premium Zone: Price trading here may indicate potential resistance or selling opportunities when aligned with other technical factors
Discount Zone: Price trading here may indicate potential support or buying opportunities when aligned with other technical factors
Equilibrium: Acts as a fair value reference point where price often consolidates or reacts
Trading Applications
This tool works well when combined with other forms of analysis such as:
Trend identification indicators
Volume analysis
Support and resistance levels
Price action patterns
Market structure analysis
Important Considerations
This indicator identifies zones based purely on historical price data
Premium and discount zones are relative to the recent lookback period
The effectiveness varies across different market conditions and timeframes
Should be used as part of a comprehensive trading strategy, not in isolation
Past price structure does not guarantee future price behavior
Technical Details
Calculation Method
Uses Pine Script's ta.pivothigh() and ta.pivotlow() functions for swing detection
Employs ta.highest() and ta.lowest() for range calculation
Updates dynamically with each new bar
Draws zones using box objects for clear visual representation
Performance Optimization
Efficiently manages box and line objects to minimize resource usage
Uses conditional plotting to reduce unnecessary calculations
Limited to essential visual elements for chart clarity
Timeframe Compatibility
This indicator works on all timeframes but the recommended settings vary:
1-5 minute charts: Lookback period 10-20, Pivot strength 3-5
15-60 minute charts: Lookback period 20-50, Pivot strength 5-10
Daily charts: Lookback period 50-100, Pivot strength 10-15
Weekly charts: Lookback period 20-50, Pivot strength 5-10
Adjust these values based on the volatility of your specific instrument.
Limitations and Considerations
What This Indicator Does NOT Do
Does not provide buy or sell signals on its own
Does not predict future price movements
Does not account for fundamental factors or market events
Does not guarantee profitability or accuracy
Market Condition Awareness
In strong trending markets, price may remain in premium or discount zones for extended periods
During ranging conditions, price typically oscillates between zones more predictably
High volatility can cause frequent zone recalculations
Low volatility may result in narrow zones with limited practical use
Risk Considerations
Premium and discount are relative concepts, not absolute values
What appears as a discount zone may continue lower in a downtrend
What appears as a premium zone may continue higher in an uptrend
Always use proper risk management and position sizing
Consider multiple timeframe analysis for context
Version Information
This indicator is written in Pine Script v6, ensuring compatibility with the latest TradingView features and optimal performance.
Final Notes
This tool is designed to enhance your market analysis by providing a clear visual representation of premium and discount price zones. It should be used as one component of a well-rounded trading approach that includes proper risk management, multiple forms of analysis, and realistic expectations about market behavior.
The concept of premium and discount zones is rooted in auction market theory and the idea that price oscillates around fair value. However, traders should understand that these zones are interpretive tools based on historical data and do not constitute trading advice or predictions about future price action.
Remember to backtest any strategy using this indicator on historical data before applying it to live trading, and always trade responsibly within your risk tolerance.
Disclaimer: The information provided by this indicator is for educational and informational purposes only. It does not constitute financial advice, investment advice, trading advice, or any other sort of advice. Always conduct your own research and consult with qualified financial professionals before making trading decisions.
Optimized BTC Mean Reversion (RSI 20/65)📈 Optimized BTC Mean Reversion (RSI 20/65)
Optimized BTC Mean Reversion (RSI 20/65) is a rule-based trading strategy designed to capture mean-reversion moves in strong market structures, primarily optimized for Bitcoin, but adaptable to other liquid cryptocurrencies.
The strategy combines RSI extremes, Stochastic momentum, and EMA trend filtering to identify high-probability reversal zones while maintaining strict risk management.
🔍 Strategy Logic
This system focuses on entering trades when price temporarily deviates from equilibrium, while still respecting the broader trend.
✅ Long Conditions
RSI below 20 (oversold)
Stochastic below 25
Price trading above the 200 EMA (or within a controlled deviation)
Designed to buy sharp pullbacks in bullish conditions
❌ Short Conditions
RSI above 65 (overbought)
Stochastic above 75
Price trading below the 200 EMA
Designed to sell relief rallies in bearish conditions
🛡 Risk Management
Fixed Stop Loss: 4%
Fixed Take Profit: 6%
Risk/Reward: 1 : 1.5
No pyramiding (single position at a time)
Full equity position sizing (adjustable)
All exits are predefined at entry, ensuring consistency and emotional discipline.
📊 Indicators Used
200 EMA – Trend direction filter
RSI (14) – Mean-reversion trigger (20 / 65 levels)
Stochastic Oscillator – Momentum confirmation
👁 Visual Features
EMA plotted directly on chart
Real-time Stop Loss, Take Profit, and Entry Price lines
Clear long/short entry markers
Works on all timeframes (optimized for intraday and swing trading)
🔔 Alerts
Long entry alerts
Short entry alerts
(Perfect for automation or discretionary execution)
⚠️ Disclaimer
This strategy is intended for educational and research purposes only. Past performance does not guarantee future results. Always test on a demo account and adjust risk parameters to your own trading plan.
zhanzhang6666
Script Name: Zero Lag Trend Signals (MT5)
Description:
A high-sensitivity trend-tracking tool optimized for crypto and stock markets. It eliminates lag in price signals via advanced filtering, generating clear long/short prompts (marked by colored blocks) aligned with market momentum. Suitable for intraday and swing trading—works with all timeframes, with adjustable sensitivity to fit different asset volatilities.
Hammer Strategy (CLOSE ON NEXT BAR) [WORKING]Adjustable hammer and inverted hammer candle
Ham? INV? is the hammer
Entry on HAM, INV OR HAM?, INV? close next bar




















