Penunjuk dan strategi
Capitulation Detector StrategyA multi-factor capitulation detector designed to identify exhaustion points in extended trends. It focuses on fading capitulation moves after multi-leg trends with extreme volume and price extension.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
THE CONCEPT
Capitulation occurs when the last holders give up — panic selling into lows or euphoric buying into highs. These moments create asymmetric opportunities because:
Sentiment becomes maximally skewed
Weak hands are flushed out
Price deviates far from equilibrium
The "fuel" for continuation is exhausted
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
THE 6 FACTORS
Trend Persistence — Price stays on one side of 38 EMA for 12+ bars, confirming a sustained directional move
Acceleration — Price stays on one side of 5 EMA for 3+ bars, showing the move is accelerating into exhaustion
Volume Spike — Current bar volume ≥ 2x the 20-bar average
Body Expansion — Candle body ≥ 1.5x average, showing conviction/panic in the move
Extension — Price is 2+ ATR away from the 38 EMA, indicating overextension from equilibrium
Multi-Leg Structure — At least 3 consecutive lower lows (for longs) or higher highs (for shorts)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SIGNAL LOGIC
Bullish Capitulation: 4+ factors align + price below 38 EMA + down candle + volume spike
Bearish Capitulation: 4+ factors align + price above 38 EMA + up candle + volume spike
The strategy enters counter-trend, fading the exhaustion move.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EXIT OPTIONS
ATR-based stop loss (default: 2 ATR)
ATR-based take profit (default: 3 ATR)
Optional trailing stop
Time filter for session-specific trading
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
BEST PRACTICES
Works best on liquid instruments with clean trends
More reliable after 3+ legs in the trend
Higher conviction when daily AND intraday timeframes align
"The bigger and more extended, the better"
Consider VWAP as additional confirmation (not coded here)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SETTINGS GUIDE
Min Score: Increase for fewer, higher-quality signals
Volume Spike Multiplier: 2x; increase for stricter filter
Extension ATR: Higher values = more overextended setups only
Trend Bars Min: Higher values = longer established trends required
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ALERTS
Bullish Capitulation (potential long)
Bearish Capitulation (potential short)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DISCLAIMER
This is a counter-trend strategy — inherently higher risk than trend-following. Always use proper position sizing and risk management. Backtest thoroughly on your specific instruments and timeframes.
Simple Gap IndicatorTitle: Simple Gap Indicator
Description: This is a utility script designed to automate the tracking and management of price gaps (also known as "Windows") on the chart. Unlike static drawings, this indicator dynamically monitors open gaps and automatically "closes" them (stops drawing) once price has filled the area, keeping your chart clean and focused on active levels only.
Why Use This Tool? Traders often mark gaps manually, but charts quickly become cluttered with old, invalid levels. This script solves that problem by using an array-based management system to track every open gap in real-time and remove it the moment it is invalidated by price action.
Technical Methodology:
Gap Detection: The script identifies "Full Gaps" where the Low of the current candle is higher than the High of the previous candle (Bullish), or vice versa (Bearish). This indicates a total disconnect in price delivery.
Dynamic Filtering:
ATR Filter: Users can filter out insignificant "noise" gaps by setting a minimum size threshold based on the Average True Range (ATR).
Time Filter: Option to restrict gap detection to specific session hours (e.g., ignoring overnight gaps on 24h charts).
Auto-Closure: The script loops through all active gaps on every new bar. If the current price wick touches an open gap, the box is visually terminated at that specific bar index and removed from the tracking array.
Visuals:
Green Box: Bullish Gap (Support Zone).
Red Box: Bearish Gap (Resistance Zone).
Labels: Optional text displaying the precise Top/Bottom price coordinates of the gap.
How to Use:
Enable "Auto-Close Gap on Retest" to keep your chart clean.
Use the ATR Filter if you are getting too many signals on lower timeframes (e.g., set to 0.5x ATR).
Set alerts for "New Gap" or "Gap Filled" to automate your workflow.
Credits: Calculations based on standard Gap/Window price action theory. Array management logic custom-coded for Pine Script v6.
Alertes Trading Manuel//@version=6
indicator("Signal simple +0.5% LONG", overlay = true)
// --- Paramètres ---
tpPctInput = input.float(0.5, "TP (%)", step = 0.1) // objectif pour toi : 0.5%
slPctInput = input.float(0.3, "SL (%)", step = 0.1) // SL indicatif : 0.3%
tpPct = tpPctInput / 100.0
slPct = slPctInput / 100.0
emaLenFast = input.int(50, "EMA rapide (intraday)", minval = 1)
emaLenSlow = input.int(200, "EMA lente (intraday)", minval = 1)
volLen = input.int(20, "Période moyenne Volume", minval = 1)
// --- Tendance daily : MA200 jours ---
ma200D = request.security(syminfo.tickerid, "D", ta.sma(close, 200))
above200D = close > ma200D
// --- Tendance intraday ---
emaFast = ta.ema(close, emaLenFast)
emaSlow = ta.ema(close, emaLenSlow)
upTrendIntraday = close > emaFast and emaFast > emaSlow
// --- MACD & RSI ---
= ta.macd(close, 12, 26, 9)
rsi = ta.rsi(close, 14)
macdOK = macdLine > macdSignal
rsiOK = rsi > 49 and rsi < 75
// --- Volume ---
volMa = ta.sma(volume, volLen)
volOK = volume > volume and volume > volMa
// --- Signal LONG simple ---
longSignal = above200D and upTrendIntraday and macdOK and rsiOK and volOK
// --- Affichage du signal ---
plotshape(
longSignal,
title = "Signal LONG",
location = location.belowbar,
style = shape.triangleup,
color = color.lime,
size = size.small,
text = "LONG"
)
// --- Lignes TP / SL indicatives basées sur le dernier signal ---
var float tpLine = na
var float slLine = na
if longSignal
tpLine := close * (1 + tpPct)
slLine := close * (1 - slPct)
// Les lignes restent jusqu'au prochain signal
plot(tpLine, "TP indicatif", color = color.new(color.green, 50), style = plot.style_linebr)
plot(slLine, "SL indicatif", color = color.new(color.red, 50), style = plot.style_linebr)
// --- Affichage des moyennes ---
plot(emaFast, "EMA rapide", color = color.new(color.blue, 40))
plot(emaSlow, "EMA lente", color = color.new(color.orange, 40))
plot(ma200D, "MA200 jours (daily)", color = color.new(color.fuchsia, 0), linewidth = 2)
S&R Detector by Rakesh Sharma📊 Support & Resistance Auto-Detector
Automatically identifies key Support and Resistance levels with strength ratings
✨ Key Features:
🎯 Intelligent S/R Detection
Automatically finds Support and Resistance levels based on swing highs/lows
Shows strength rating (Very Strong, Strong, Medium, Weak)
Displays number of touches at each level
📅 Key Time-Based Levels
Previous Day High/Low (PDH/PDL) - Blue lines
Previous Week High/Low (PWH/PWL) - Purple lines
Optional Round Numbers for psychological levels
⚙️ Fully Customizable
Adjust sensitivity (5-20 pivot length)
Filter by minimum touches (1-10)
Control maximum levels displayed (3-20)
Optional S/R zones (shaded areas)
📊 Live Dashboard
Shows nearest Support/Resistance
Distance to key levels
Total S/R levels detected
🔔 Smart Alerts
PDH/PDL breakout signals
Visual markers on chart
Perfect for: Intraday traders, Swing traders, Price action analysis
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)
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)
NeoChartLabs Stochastic RSIOne of our Favorite Indicators - The NeoChart Labs Stochastic RSI
Slowed down and smoothed out to hide the jerky movements of the crypto market.
StochRSI measures where the current RSI value sits relative to its recent high and low range. This provides more frequent signals and is designed to address the issue of the standard RSI remaining at extreme levels for too long. Best when used with 80 / 20
Risk & Position CalculatorThis indicator is called "Risk & Position Calculator".
This indicator shows 4 information on a table format.
1st: 20 day ADR% (ADR%)
2nd: Low of the day price (LoD)
3rd: The percentage distance between the low of the day price and the current market price in real-time (LoD dist.%)
4th: The calculated amount of shares that are suggested to buy (Shares)
The ADR% and LoD is straightforward, and I will explain more on the 3rd and 4th information.
__________________________________________________________________________________
The Lod dist.% is a useful tool if you are a breakout buyer and use the low of the day price as your stop loss, it helps you determine if a breakout buy is at a risk tight area (~1/2 ADR%) or it is more of a chase (>1 ADR%).
I use four different colors to visualize this calculation results (green, yellow, purple, and red).
Green: Lod dist.% <= 0.5 ADR%
Yellow: 0.5 ADR% < Lod dist.% <= 1 ADR%
Purple: 1 ADR% < Lod dist.% <= 1.5 ADR%
Red: 1.5 ADR% < Lod dist.%
(e.g., if Lod dist.% is colored in Green, it means your stop loss is <= 0.5 ADR%, therefore if you buy here, the risk is probably tight enough)
__________________________________________________________________________________
The Shares is a useful tool if you want to know exactly how many shares you should buy at the breakout moment. To use this tool, you first need to input two information in the indicator setting panel: the account size ($) and portfolio risk (%).
Account Size ($) means the dollar value in your total account.
Portfolio Risk (%) means how much risk you are willing to take per trade.
(e.g. a 1% portfolio risk in a 5000$ account is 50$, which is the risk you will take per trade)
After you provide these two inputs, the indicator will help you calculate how many shares you should buy based on the calculated Dollar Risk ($), real-time market price, and the low of the day price.
(e.g. Dollar Risk (50$), real-time market price (100$), Lod price (95$) -> then you will need to buy 50/(100-95) = 10 shares to meet your demand, so it will display as Shares { 10 } )
In addition, I also introduce a mechanism that helps you avoid buying too big of a position relative to your overall account . I set the limit to 25%, which means you don't put more than 25% of your account money into a single trade, which helps prevent single stock risk.
By introducing this mechanism, it will supervise if the suggested Shares to buy exceed max position limit (25%). If it actually exceeds, instead of using Dollar Risk ($) to calculate Shares, it will use position limit to calculate and display the max Shares you should buy.
__________________________________________________________________________________
That's it. Hope you find this explanation helpful when you use this indicator. Have a great day mate:)
NeoChartLabs McGinley DynamicOne of our Favorite Indicators - the McGinley Dynamic
The MGD is adaptive, it speeds up for crypto and slows down for stocks, this version turns green when bullish and red when bearish - this is a fast indicator so the colors are more reliable on higher time frames.
The McGinley Dynamic is a smart, adaptive moving average technical indicator created by John R. McGinley, designed to overcome the lag and whipsaw issues of traditional moving averages (MAs) by automatically adjusting to varying market speeds, resulting in a smoother, more responsive line that tracks price action better, acting as a reliable trend-following tool or baseline in financial charts.
Shout out to LOXX for the original script, updated to v6.
(SM3) Volume Profile Tool-kit1st pine script. It is a work in progress. I use this to mark previous day high and low value areas as well as overnight volume profile for NYSE open strategy.
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条件+最終三点)")
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).
The Reaper WhistleThe Reaper Whistle is a high-precision RSI momentum system engineered for scalpers and intraday traders.
It combines a customizable RSI with a dynamic moving average signal line to detect micro-shifts in momentum, early reversals, and continuation setups with extreme speed.
The indicator includes five key zones used by liquidity and SMC-style traders:
• Strong Sell (90) – Extreme momentum exhaustion
• Sell (80) – Overextension area
• TP Zone (50) – Momentum balance / decision point
• Buy (20) – Discount area
• Strong Buy (10) – Extreme sell-side exhaustion
By tracking how RSI interacts with its MA inside these zones, traders can identify high-probability sniper entries on the 1m, 3m, and 5m charts.
⸻
⭐ HOW IT WORKS (Quick Breakdown)
• RSI Period: defines momentum sensitivity
• MA Period: smooths RSI noise and clarifies direction shifts
• MA Type: SMA, EMA, or WMA for different reaction speeds
• Crossovers: show momentum flips or trend continuation
• Zones: filter out weak signals and highlight only premium setups
⸻
⚡ STRATEGY EXAMPLES
1️⃣ Liquidity Sweep Reversal (Most Powerful Setup)
Use case: Gold, NAS100, NQ, US30
1. Price sweeps a previous high/low
2. RSI spikes into Strong Sell (90) or Strong Buy (10)
3. RSI crosses its MA back inside the zone
4. Enter on candle confirmation
5. TP at the next imbalance, VWAP, or volume cluster
This setup catches V-shaped reversals and trap plays.
⸻
2️⃣ Trend Continuation Pullback
Use case: Trending markets
1. Identify trend direction (EMA 200, structure, etc.)
2. Wait for RSI to pull back to the TP (50) zone
3. Watch for RSI crossing its MA in trend direction
4. Enter with trend
5. TP at previous swing high/low
This setup filters out weak pullbacks and catches clean momentum continuation.
⸻
3️⃣ Breakout Confirmation
Use case: Range breakouts, opening range breaks
1. Price breaks a consolidation high/low
2. RSI holds above Sell (80) in uptrend or below Buy (20) in downtrend
3. RSI crosses its MA with momentum
4. Enter breakout
5. TP at HTF zone or liquidity target
Perfect for fast markets like NAS100 and Bitcoin.
⸻
4️⃣ Divergence + Whistle Flip
Use case: Slow markets or pre-session moves
1. Look for bullish or bearish RSI divergence
2. Wait for RSI to cross the MA in direction of divergence
3. Enter once momentum confirms
4. TP at imbalance, FVG, or mid-range
This increases divergence accuracy dramatically.
⸻
🔥 RECOMMENDED SETTINGS
• Scalping (1m–3m):
• RSI: 5
• MA: 3
• Type: EMA
• Intraday 5m–15m:
• RSI: 7–14
• MA: 5
• Type: SMA
⸻
⭐ WHO IT’S BUILT FOR
• Liquidity + SMC traders
• Scalpers who need fast confirmation
• Traders who want clean, simple entries
• Beginners who want visual guidance
• Professionals who want momentum precision
The Reaper Whistle is intentionally designed for speed, clarity, and reliability — no clutter, no lag, just pure momentum read.
— Created by TheTrendSniper (ChartReaper)
“When the market whispers… the Reaper whistles.”
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).
The Abramelin Protocol [MPL]"Any sufficiently advanced technology is indistinguishable from magic." — Arthur C. Clarke
🌑 SYSTEM OVERVIEW
The Abramelin Protocol is not a standard technical indicator; it is a "Technomantic" trading algorithm engineered to bridge the gap between 15th-century esoteric mathematics and modern high-frequency markets.
This script is the flagship implementation of the MPL (Magic Programming Language) project—an open-source experimental framework designed to compile metaphysical intent into executable Python and Pine Script algorithms.
Unlike traditional indicators that rely on arbitrary constants (like the 14-period RSI or 200 SMA), this protocol calculates its parameters using "Dynamic Entity Gematria." We utilize a custom Python backend to analyze the ASCII vibrational frequencies of specific metaphysical archetypes, reducing them via Tesla's 3-6-9 harmonic principles to derive market-responsive periods.
🧬 WHAT IS ?
MPL (Magic Programming Language) is a domain-specific language and research initiative created to explore Technomancy—the art of treating code as a spellbook and the market as a chaotic entity to be tamed.
By integrating the logic of ancient Grimoires (such as The Book of Abramelin) with modern Data Science, MPL aims to discover hidden correlations in price action that standard tools overlook.
🔗 CONNECT WITH THE PROJECT:
If you are a developer, a trader, or a seeker of hidden knowledge, examine the source code and join the order:
• 📂 Official Project Site: hakanovski.github.io
• 🐍 MPL Source Code (GitHub): github.com
• 👨💻 Developer Profile (LinkedIn): www.linkedin.com
🔢 THE ALGORITHM: 452 - 204 - 50
The inputs for this script are mathematically derived signatures of the intelligence governing the system:
1. THE PAIMON TREND (Gravity)
• Origin: Derived from the ASCII summation of the archetype PAIMON (King of Secret Knowledge).
• Function: This 452-period Baseline acts as the market's "Event Horizon." It represents the deep, structural direction of the asset.
• Price > Line: Bullish Domain.
• Price < Line: Bearish Void.
2. THE ASTAROTH SIGNAL (Trigger)
• Origin: Derived from the ASCII summation of ASTAROTH (Knower of Past & Future), reduced by Tesla’s 3rd Harmonic.
• Function: This is the active trigger line. It replaces standard moving averages with a precise, gematria-aligned trajectory.
3. THE VOLATILITY MATRIX (Scalp)
• Origin: Based on the 9th Harmonic reduction.
• Function: Creates a "Cloud" around the signal line to visualize market noise.
🛡️ THE MILON GATE (Matrix Filter)
Unique to this script is the "MILON Gate" toggle found in the settings.
• ☑️ Active (Default): The algorithm applies the logic of the MILON Magic Square. Signals are ONLY generated if Volume and Volatility align with the geometric structure of the move. This filters out ~80% of false signals (noise).
• ⬜ Inactive: The algorithm operates in "Raw Mode," showing every mathematical crossover without the volume filter.
⚠️ OPERATIONAL USAGE
• Timeframe: Optimized for 4H (The Builder) and Daily (The Architect) charts.
• Strategy: Use the Black/Grey Line (452) as your directional bias. Take entries only when the "EXECUTE" (Long) or "PURGE" (Short) sigils appear.
Use this tool wisely. Risk responsibly. Let the harmonics guide your entries.
— Hakan Yorganci
Technomancer & Full Stack Developer
Quality Detector (Buffett Style) + Beta [Solid]This indicator acts as an on-chart fundamental screener, designed to instantly evaluate the quality and financial health of a company directly on your price chart.
The concept is inspired by "Buffettology" principles: looking for large, profitable companies with low debt. Additionally, it includes a Beta calculation to assess market volatility risk.
The tool displays a panel in the bottom-right corner featuring four key metrics and a final verdict.
How it Works & Metrics Used
The script retrieves quarterly fundamental data ("FQ") and performs calculations to verify if the asset meets specific criteria.
1. Market Cap (Size)
What it is: The total market value of the company's outstanding shares.
Goal: To identify established, large-cap companies.
Default Threshold: Must be greater than $10 Billion.
2. ROE - Return on Equity (Quality)
What it is: A measure of financial performance calculated by dividing net income by shareholders' equity.
Goal: To find companies that are efficient at generating profits from shareholders' capital.
Default Threshold: Must be higher than 15%.
3. Total Debt to Equity (Health)
What it is: A ratio indicating the relative proportion of shareholders' equity and debt used to finance a company's assets.
Calculation: This script manually calculates this ratio by fetching TOTAL_DEBT and dividing it by TOTAL_EQUITY from fundamental data to ensure robustness across different symbols.
Goal: To ensure the company is not overly leveraged.
Default Threshold: Must be lower than 1.5.
4. Beta (Risk/Volatility)
What it is: A measure of a stock's volatility in relation to the overall market (S&P 500).
Calculation: It is calculated by comparing the asset's returns against SPY (S&P 500 ETF) returns over a 252-day period (approx. 1 trading year).
Goal: To understand if the stock is more volatile (Beta > 1) or less volatile (Beta < 1) than the market.
Note: Beta does not affect the final "Quality" score but serves as an extra risk indicator, highlighting in orange if Beta > 1.
The Verdict (Scoring System)
The indicator assigns a score from 0 to 3 based on the first three fundamental metrics (Size, ROE, and Debt/Equity).
If a metric passes the threshold, it gets a green background and +1 point.
If it fails, it gets a red background.
Final Verdict:
💎 QUALITY GEM: The company passed all 3 fundamental checks (Score = 3/3).
⚠️ DISCARD: The company failed one or more fundamental checks.
Settings
You can customize the thresholds to fit your own investment strategy in the indicator settings:
Minimum Market Cap (in Billions).
Minimum ROE (%).
Maximum Debt/Equity Ratio.
Disclaimer: This tool is for informational and educational purposes only. It relies on third-party fundamental data which may sometimes be delayed or unavailable. Do not base investment decisions solely on this indicator.
Liquidity Oscillator (Price Impact Proxy)Osc > +60: liquidity is high relative to recent history → slippage tends to be lower.
Osc < -60: liquidity is low → expect worse fills, bigger wicks, easier manipulation.
It’s most useful as a filter (e.g., “don’t enter when liquidity is low”).
Fat Tony's Composite Momentum + ROC (v0.4)Fat Tony's Composite Momentum + ROC (v0.4)
Option guy settings and indicators
Momentum by Trading BiZonesSqueeze Momentum Indicator with EMA
Overview
The Squeeze Momentum Indicator with EMA is a powerful technical analysis tool that combines the original Squeeze Momentum concept with an Exponential Moving Average (EMA) overlay. This enhanced version helps traders identify market momentum, volatility contractions (squeezes), and potential trend reversals with greater precision.
Core Concept
The indicator operates on the principle of volatility contraction and expansion:
Squeeze Phase: When Bollinger Bands move inside the Keltner Channel, indicating low volatility and potential energy buildup
Expansion Phase: When momentum breaks out of the squeeze, signaling potential directional moves
Key Components
1. Squeeze Momentum Calculation
Formula: Momentum = Linear Regression(Close - Average Price)
Where Average Price = (Highest High + Lowest Low + SMA(Close)) / 3
Visualization: Histogram bars showing positive (green) and negative (red) momentum
Zero Line: Represents equilibrium point between buyers and sellers
2. EMA Overlay
Purpose: Smooths momentum values to identify underlying trends
Customization:
Adjustable period (default: 20)
Toggle on/off display
Customizable color and line thickness
Cross Signals: Buy/sell signals when momentum crosses above/below EMA
3. Volatility Bands
Bollinger Bands (20-period, 2 standard deviations)
Keltner Channels (20-period, 1.5 ATR multiplier)
Squeeze Detection: Visual background shading when BB are inside KC
Trading Signals
Buy Signals (Green Upward Triangle)
Momentum histogram crosses ABOVE EMA line
Occurs during or after squeeze release
Confirmed by expanding histogram bars
Sell Signals (Red Downward Triangle)
Momentum histogram crosses BELOW EMA line
Often precedes market downturns
Watch for increasing negative momentum
Squeeze Warnings (Gray Background)
Market in low volatility state
Prepare for potential breakout
Direction indicated by momentum bias
Indicator Settings
Main Parameters
Length: Period for calculations (default: 20)
Show EMA: Toggle EMA visibility
EMA Period: Smoothing period for EMA
Visual Settings
Histogram color-coding based on momentum direction
EMA line color and thickness
Signal marker size and visibility
Squeeze zone background display
Practical Applications
Trend Identification
Uptrend: Consistently positive momentum with EMA support
Downtrend: Consistently negative momentum with EMA resistance
Range-bound: Oscillating around zero line
Entry/Exit Points
Conservative Entry: Wait for squeeze release + EMA crossover
Aggressive Entry: Anticipate breakout during squeeze
Exit: Opposite crossover or momentum divergence
Risk Management
Use squeeze zones as warning periods
EMA crossovers as confirmation signals
Combine with support/resistance levels
Advanced Interpretation
Momentum Strength
Strong Bullish: Tall green bars above EMA
Weak Bullish: Short green bars near EMA
Strong Bearish: Tall red bars below EMA
Weak Bearish: Short red bars near EMA
Divergence Detection
Price makes higher high, momentum makes lower high → Bearish divergence
Price makes lower low, momentum makes higher low → Bullish divergence
Squeeze Characteristics
Long squeezes: More potential energy
Frequent squeezes: Choppy market conditions
No squeezes: High volatility, trending markets
Recommended Timeframes
Scalping: 1-15 minute charts
Day Trading: 15-minute to 4-hour charts
Swing Trading: 4-hour to daily charts
Position Trading: Daily to weekly charts
Best Practices
Confirmation
Use with volume indicators
Check higher timeframe direction
Wait for candle close confirmation
Filtering Signals
Ignore signals during extreme volatility
Require minimum bar size for crossovers
Consider market context (news, sessions)
Combination Suggestions
With RSI: Confirm overbought/oversold conditions
With Volume Profile: Identify high-volume nodes
With Support/Resistance: Key level reactions
With Trend Lines: Breakout confirmations
Limitations
Lagging indicator (based on past data)
Works best in trending markets
May give false signals in ranging markets
Requires proper risk management
Conclusion
The Squeeze Momentum Indicator with EMA provides a comprehensive view of market dynamics by combining volatility analysis, momentum measurement, and trend smoothing. Its visual clarity and customizable parameters make it suitable for traders of all experience levels seeking to identify high-probability trading opportunities during volatility contractions and expansions.
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.






















