Fat Tony's Composite Momentum + ROC (v0.4)Fat Tony's Composite Momentum + ROC (v0.4)
Option guy settings and indicators
نماذج فنيه
Trend detection zero lag Trend Detection Zero-Lag (v6)
Trend Detection Zero-Lag is a high-performance trend identification indicator designed for intraday traders, scalpers, and swing traders who require fast trend recognition with minimal lag. It combines a zero-lag Hull Moving Average, slope analysis, swing structure logic, and adaptive volatility sensitivity to deliver early yet stable trend signals.
This indicator is optimized for real-time decision-making, particularly in fast markets where traditional moving averages react too slowly.
Core Features
🔹 Zero-Lag Trend Engine
Uses a Zero-Lag Hull Moving Average (HMA) to reduce lag by approximately 40–60% versus standard moving averages.
Provides earlier trend shifts while maintaining smoothness.
🔹 Multi-Factor Trend Detection
Trend direction is determined using a hybrid engine:
HMA slope (momentum direction)
Rising / falling confirmation
Swing structure detection (HH/HL vs LH/LL)
ATR-adjusted dynamic sensitivity
This approach allows fast flips when conditions change, without excessive noise.
Adaptive Volatility Sensitivity
Sensitivity dynamically adjusts based on ATR relative to price
In high volatility: faster reaction
In low volatility: smoother, more stable trend state
This ensures the indicator adapts across:
Trend days
Range days
Volatility expansion or contraction
Trend Duration Intelligence
The indicator tracks historical trend durations and maintains a rolling memory of recent bullish and bearish phases.
From this, it calculates:
Current trend duration
Average historical duration for the active trend direction
This helps traders gauge:
Whether a trend is early, mature, or extended
Probability of continuation vs exhaustion
Strength Scoring
A normalized Trend Strength Score (0–100) is calculated using:
Zero-lag slope magnitude
ATR normalization
This provides a quick read on:
Weak / choppy trends
Healthy trend continuation
Overextended momentum
Visual Design
Color-coded Zero-Lag HMA
Bullish trend → user-defined bullish color
Bearish trend → user-defined bearish color
Designed for dark mode / neon-style charts
Clean overlay with no clutter
Trend Detection Zero-Lag is built for traders who need:
Faster trend recognition
Adaptive behavior across market regimes
Structural confirmation beyond simple moving averages
Clear, actionable visual signals
Helix Protocol 7Helix Protocol 7
Overview
Helix Protocol 7 is a trend-adaptive signal engine that automatically adjusts its buy and sell criteria based on current market conditions. Rather than using fixed thresholds that work well in some environments but fail in others, Helix detects whether the market is in a strong uptrend, neutral consolidation, or downtrend, then applies the appropriate signal parameters for each state. This adaptive approach helps traders buy dips aggressively in confirmed uptrends while requiring much stricter conditions before buying in downtrends.
Core Philosophy
The fundamental insight behind Helix is that the same indicator readings mean different things in different market contexts. An RSI of 45 during a strong uptrend represents a healthy pullback and buying opportunity. That same RSI of 45 during a confirmed downtrend might just be a brief pause before further decline. Helix encodes this context-awareness directly into its signal logic.
The Money Line
At the center of the indicator is the Money Line, which can be configured as either a linear regression line or a weighted combination of exponential moving averages. Linear regression provides a mathematically optimal fit through recent price data, while the weighted EMA option offers more responsiveness to recent price action. The slope of the Money Line determines whether the immediate price trend is bullish, bearish, or neutral, which affects the color of the bands and cloud shading.
Dynamic Envelope Bands
Upper and lower bands are calculated using Average True Range multiplied by a dynamic factor. When ADX indicates trending conditions, the bands automatically widen to accommodate larger price swings. The Chaikin Accumulation/Distribution indicator also influences band width, with strong accumulation or distribution causing additional band expansion. This dual adaptation helps the bands remain relevant across different volatility regimes.
Trend State Detection
Helix classifies market conditions into four distinct states using a combination of ADX behavior and Directional Movement analysis.
Strong Uptrend requires ADX to be rising (gaining momentum), ADX value above a threshold (default 25), and the positive directional indicator exceeding the negative. This combination confirms not just that price is rising, but that the trend is strengthening.
Strong Downtrend uses the same ADX requirements but with the negative directional indicator dominant. This identifies accelerating downward momentum.
Weak Downtrend is detected when ADX is falling (trend losing steam) but negative DI still exceeds positive DI. This often represents the exhaustion phase of a decline.
Neutral applies when none of the above conditions are met, typically during consolidation or when directional indicators are close together.
Adaptive Signal Thresholds
The indicator uses Fisher Transform and RSI as its primary oscillators, but the trigger levels change based on trend state.
During Strong Uptrend, buy conditions are relaxed significantly. The Fisher threshold might be set to 1.0 (only slightly below neutral) and RSI to 50, allowing entries on minor pullbacks within the established trend. Sell conditions are tightened, requiring Fisher above 2.5 and RSI above 70, letting winning positions run longer.
During Neutral conditions, both buy and sell thresholds return to traditional oversold and overbought levels. Fisher must reach -2.0 for buys and +2.0 for sells, with RSI requirements around 30 and 65 respectively.
During Downtrend, buy conditions become very strict. Fisher must reach extreme oversold levels like -2.5 and RSI must drop below 25, ensuring buys only trigger on genuine capitulation. Sell conditions are loosened, allowing exits on any meaningful bounce.
This asymmetric approach embodies the trading principle of being aggressive when conditions favor you and defensive when they do not.
Band Touch Signals
In addition to oscillator-based signals, Helix generates signals when price touches the dynamic bands. A touch of the lower band indicates potential support and generates a buy signal. A touch of the upper band suggests potential resistance and generates a sell signal. These band-based signals work alongside the oscillator signals, providing entries even when Fisher and RSI have not reached their thresholds.
Extreme Move Detection
Sometimes price moves so violently that it penetrates the bands by an unusual amount. Helix measures this penetration depth as a percentage of ATR and can flag these as "extreme" signals. Extreme signals have special properties: they can fire intra-bar (before the candle closes) to catch wick entries, they can bypass normal cooldown periods, and they can optionally bypass volatility freezes. This allows the indicator to capture panic selling events that might be missed by waiting for candle closes.
Cascade Protection System
A critical feature for risk management is the built-in cascade protection that prevents averaging down into oblivion. The system has two components.
First, it tracks Bollinger Band Width Percentile, which measures current volatility relative to its historical range. When BBWP exceeds a threshold (default 92%), indicating a volatility spike often associated with sharp directional moves, all buy signals are temporarily frozen. This prevents entries during the most dangerous market conditions.
Second, it counts consecutive buy signals without an intervening sell. After reaching the maximum (default 3), no additional buy signals are generated until a sell occurs. This absolute limit prevents the common mistake of repeatedly buying a falling asset.
The protection status is displayed in the information panel, showing current BBWP level and the consecutive buy count.
RSI Divergence Detection
Helix includes automatic detection of RSI divergences, which often precede trend reversals. Regular bullish divergence occurs when price makes a lower low but RSI makes a higher low, suggesting weakening downside momentum. Regular bearish divergence is the opposite pattern at tops. Hidden divergences, which suggest trend continuation rather than reversal, are also detected and can be displayed optionally. Divergence lines are drawn directly on the price chart connecting the relevant pivot points.
Signal Cooldown
To prevent signal clustering and overtrading, a configurable cooldown period prevents new signals for a set number of bars after each signal. This ensures each signal represents a distinct trading opportunity.
Visual Components
The indicator provides comprehensive visual feedback. The Money Line changes color based on slope direction. The cloud shading between bands reflects trend bias. An ADX bar at the bottom of the chart uses color coding to show trend state at a glance: lime for strong uptrend, red for downtrend, white for ranging (very low ADX), orange for flat, and blue for trending but not yet strong.
Price labels appear at signal locations showing the entry or exit price, the trigger type (band touch, uptrend dip, capitulation, etc.), and the current position in the consecutive buy count.
The information panel displays current trend state, divergence status, BBWP freeze status, buy counter, ADX with direction arrow, DI spread, Fisher and RSI values, and the current active thresholds for buy and sell signals. A compact mode is available for mobile devices.
How to Use
In strong uptrends, look for buy signals on pullbacks to the Money Line or lower band. The relaxed thresholds will generate more frequent entries, which is appropriate when trend momentum is confirmed. Consider letting sell signals pass if the trend remains strong.
In neutral markets, treat signals more selectively. Both buy and sell signals require significant oscillator extremes, making them higher-probability but less frequent.
In downtrends, exercise extreme caution with buy signals. The strict requirements mean buys only trigger on major oversold conditions. Respect sell signals promptly, as the loosened thresholds are designed to protect capital.
Always monitor the cascade protection status. If BBWP shows frozen or the buy counter is at maximum, the indicator is warning you that conditions are dangerous for new long entries.
Settings Guidance
The default settings are calibrated for cryptocurrency markets on 5-minute timeframes. For other assets or timeframes, consider adjusting the ADX threshold for strong trend detection (lower for less volatile assets), the Fisher and RSI thresholds for each trend state, and the BBWP freeze level based on the asset's typical volatility profile.
The indicator includes a debug panel that can be enabled to show the detailed state of all conditions, useful for understanding why signals are or are not firing.
Continuation Model by XausThis report summarizes the historical performance of the Institutional Daily Bias Probability Model on
EURUSD daily data for the 2025 calendar year. The model combines three components: 1.
Continuation bias around the previous day's high/low (PDH/PDL). 2. Reversal bias based on failed
continuation, failed breakouts, and exhaustion. 3. Neutral bias to identify liquidity-building days when no
directional trades should be taken. A fixed 25-pip stop loss (0.0025) is assumed for R-multiple
calculations. Trades are only taken when Neutral score < 50 and either Continuation or Reversal score
is at least 70, with Neutral overriding, then Reversal, then Continuation.
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)
ORB + FVG + PDH/PDL ORB + FVG + PDH/PDL is an all-in-one day-trading overlay that plots:
Opening Range (ORB) high/low with optional box and extension
Fair Value Gaps (FVG) with optional “unmitigated” levels + mitigation lines
Previous Day High/Low history (PDH/PDL) drawn as one-day segments (yesterday’s levels plotted across today’s session only)
Includes presets (ORB only / FVG only / Both) and optional alerts for ORB touches, ORB break + retest, FVG entry, and PDH/PDL touches.
Liquidity Entry Triggers (4-Model System) | WarRoomXYZLiquidity Entry Triggers is an open-source, price-action-based analytical framework designed to highlight recurring institutional liquidity behaviors that appear across all liquid markets.
The script focuses on how and where liquidity is taken, rather than attempting to predict direction using oscillators or lagging indicators.
It is optimized for XAUUSD, FX pairs, indices, and crypto , particularly on 1m–15m timeframes where session behavior and liquidity reactions are most visible.
This tool is not a buy/sell signal generator .
It provides contextual entry zones based on structural liquidity logic, allowing traders to apply their own execution rules.
Core Philosophy
Markets move because of:
•Trapped traders
•Forced liquidations
•Session-based liquidity cycles
•Reactions at prior institutional participation zones
This script visualizes four repeatable entry triggers that emerge from those mechanisms.
🔹 1. Failed Breakout / Trapped Trader Model
When price breaks a clearly defined range high or low, breakout traders often enter expecting continuation.
If price fails to hold outside the range and closes back inside, those traders become trapped.
The script detects:
•Breaks beyond recent highs/lows
•Immediate rejection back into the range
•Structural failure of momentum
These conditions frequently lead to mean reversion or reversal moves as trapped traders exit and fuel movement in the opposite direction.
Markers are plotted at the point of failure to highlight potential trap zones.
🔹 2. Liquidation Flush Detection
Sharp impulsive candles with abnormally large wicks often represent liquidation cascades rather than healthy trend continuation.
The script identifies liquidation behavior by measuring:
•Wick-to-body imbalance
•Sudden expansion followed by rejection
•Temporary price inefficiencies
These flushes commonly occur near:
•Session highs/lows
•Range extremes
•Trend exhaustion points
Such events often lead to rebalance moves , where price partially or fully fills the wick.
🔹 3. Orderblock Reaction Zones
Orderblocks represent areas where heavy participation occurred before a strong displacement move.
The script highlights:
•Clean bullish and bearish orderblock structures
•Zones formed during consolidation prior to expansion
•Areas likely to be defended when revisited
Orderblocks with minimal noise and clean departure are prioritized, as they often reflect institutional positioning rather than retail activity.
These zones are intended as reaction areas , not automatic entry signals.
🔹 4. London Session Liquidity Sweep Model
The London session frequently establishes the initial daily high or low.
Later in the session or during New York, price often:
•Sweeps internal liquidity around that level
•Rejects after the sweep
•Continues with the higher-timeframe bias
The script monitors London session behavior and marks:
•Liquidity runs above/below London highs and lows
•Rejections back inside the prior structure
This model is especially effective when combined with broader daily context.
🔹4. How the Components Work Together
The framework is designed as a context stack , not a checklist of signals:
Liquidity Event → Location → Timing → Trader Execution
Each model reinforces the others:
•Failed breakouts often occur after liquidity sweeps
•Liquidation wicks frequently form near orderblocks
•London sweeps often trigger failed momentum moves
•Confluence increases probability, not certainty
🔹 Practical Usage Guide
✔ Identify context
Determine whether price is approaching a range extreme, session level, or prior participation zone.
✔ Wait for a liquidity event
Look for a sweep, failed breakout, or liquidation wick.
✔ Observe reaction
Rejection, displacement, or reclaim behavior provides confirmation.
✔ Execute manually
Stops are commonly placed beyond the liquidity extreme.
Targets are typically internal liquidity, prior highs/lows, or imbalance zones.
The indicator does not manage trades or enforce rules.
Execution and risk management remain the trader’s responsibility.
🔹 5. Originality & Design Notes
This script does not replicate or bundle existing indicators.
It introduces:
•A multi-model liquidity entry framework
•Structural failed breakout detection
•Wick-based liquidation imbalance logic
•Session-aware liquidity sweep visualization
•A unified, minimal, non-lagging design
All concepts are based on observable market behavior and integrated into a single analytical tool.
🔹 6. Suitable Markets & Timeframes
Works best on:
•XAUUSD
•Major FX pairs
•Indices
•Liquid crypto markets
Recommended timeframes:
•1m
•5m
•15m
•30m
🔹7. Limitations & Notes
•This is an analytical framework , not a trading system
•All markings are confirmed at candle close (non-repainting)
•No open interest or order flow data is used
•Results depend on user interpretation and execution
•Best used alongside session bias and higher-timeframe structure
Disclaimer
This script is provided for educational and informational purposes only.
It does not constitute financial advice, investment advice, or a recommendation to buy or sell any instrument.
Trading involves risk, and losses can exceed initial deposits.
The author assumes no responsibility for trading decisions made using this tool.
Users are strongly encouraged to test this script in demo or simulation environments and to apply proper risk management, position sizing, and personal discretion at all times.
By using this script, you acknowledge and accept all associated risks.
RSI DivergenceStupid simple logic of RSI divergence. Took it simple, but be mindful - it has errors on the go - especially when in opposite trend some fakeouts happen - so you always must do your own personal check before making a final decision.
Usually the signal appears after 5 candles - logic is to trade pullbacks, not the divergence itself - as mentioned, it could be faked out, as well - especially in opposite trend than the divergence itself.
This is a signal, that appears in ideal conditions - as we know, not all divergences happen under the same logic, therefore don't expect it to print the quality level signals on every possible turnaround.
You must keep this as your assistant, not your decision maker.
Hope this indicator can serve anyone on the go.
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.
ORB + FVG A+ PRO (All-in-One) [QQQ]Configurable ORB + FVG + filters (VIX, ORB range, relative volume) + A+ PRO (retest at the FVG edge + rejection) + anti-fakeout + orange reminder “CONFIRM POC/HVN (Volume Profile)” right when the A+ signal appears
7/19 EMA Crossover Alertsaskl hasodidu fuasdo asdfasdfiu sdfiuyiodafugoasdf fa sgyu dsgasdo asfo o asdf
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条件+最終三点)")
Strategia S&P 500 vs US10Y YieldThis strategy explores the macroeconomic relationship between the equity market (S&P 500) and the debt market (10-Year Treasury Yield). Historically, rapid spikes in bond yields often exert downward pressure on equity valuations, leading to corrections or bear markets.
The goal of this strategy is capital preservation. It attempts to switch to cash when yields are rising too aggressively and re-enter the stock market when the bond market stabilizes.
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
Dynamic Trend Channel - Adaptive Support & Resistance SystemA powerful trend-following indicator that adapts to market conditions in real-time. The Dynamic Trend Channel uses ATR-based volatility measurements to create intelligent support and resistance zones that adjust automatically to price action.
Key Features:
✓ Adaptive channel width based on market volatility (ATR)
✓ Color-coded trend identification (Green = Bullish, Red = Bearish)
✓ Smooth, flowing bands that reduce noise
✓ Breakout signals for high-probability entries
✓ Real-time info table showing trend status and price positioning
✓ Customizable settings for all timeframes
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! 📉📈
Fair Value Gap Signals [Kodexius]Fair Value Gap Signals is an advanced market structure tool that automatically detects and tracks Fair Value Gaps (FVGs), evaluates the quality of each gap, and highlights high value reaction zones with visual metrics and signal markers.
The script is designed for traders who focus on liquidity concepts, order flow and mean reversion. It goes beyond basic FVG plotting by continuously monitoring how price interacts with each gap and by quantifying three key aspects of each zone:
-Entry velocity inside the gap
-Volume absorption during tests
-Structural integrity and depth of penetration
The result is a dynamic, information rich visualization of which gaps are being respected, which are being absorbed, and where potential reversals or continuations are most likely to occur.
All visual elements are configurable, including the maximum number of visible gaps per direction, mitigation method (close or wick) and an ATR based filter to ignore insignificant gaps in low volatility environments.
🔹 Features
🔸 Automated Fair Value Gap Detection
The script detects both bullish and bearish FVGs based on classic three candle logic:
Bullish FVG: current low is strictly above the high from two bars ago
Bearish FVG: current high is strictly below the low from two bars ago
🔸 ATR Based Gap Filter
To avoid clutter and low quality signals, the script can ignore very small gaps using an ATR based filter.
🔸Per Gap State Machine and Lifecycle
Each gap is tracked with an internal status:
Fresh: gap has just formed and has not been tested
Testing: price is currently trading inside the gap
Tested: gap was tested and left, waiting for a potential new test
Rejected: price entered the gap and then rejected away from it
Filled: gap is considered fully mitigated and no longer active
This state machine allows the script to distinguish between simple touches, multiple tests and meaningful reversals, and to trigger different alerts accordingly.
🔸 Visual Ranking of Gaps by Metrics
For each active gap, three additional horizontal rank bars are drawn on top of the gap area:
Rank 1 (Vel): maximum entry velocity inside the gap
Rank 2 (Vol): relative test volume compared to average volume
Rank 3 (Dpt): remaining safety of the gap based on maximum penetration depth
These rank bars extend horizontally from the creation bar, and their length is a visual score between 0 and 1, scaled to the age of the gap. Longer bars represent stronger or more favorable conditions.
🔸Signals and Rejection Markers
When a gap shows signs of rejection (price enters the gap and then closes away from it with sufficient activity), the script can print a signal label at the reaction point. These markers summarize the internal metrics of the gap using a tooltip:
-Velocity percentage
-Volume percentage
-Safety score
-Number of tests
🔸 Flexible Mitigation Logic (Close or Wick)
You can choose how mitigation is defined via the Mitigation Method input:
Close: the gap is considered filled only when the closing price crosses the gap boundary
Wick: a full fill is detected as soon as any wick crosses the gap boundary
🔸 Alert Conditions
-New FVG formed
-Price entering a gap (testing)
-Gap fully filled and invalidated
-Rejection signal generated
🔹Calculations
This section summarizes the main calculations used under the hood. Only the core logic is covered.
1. ATR Filter and Gap Size
The script uses a configurable ATR length to filter out small gaps. First the ATR is computed:
float atrVal = ta.atr(atrLength)
Gap size for both directions is then measured:
float gapSizeBull = low - high
float gapSizeBear = low - high
If useAtrFilter is enabled, gaps smaller than atrVal are ignored. This ties the minimum gap size to the current volatility regime.
2. Fair Value Gap Detection
The basic FVG conditions use a three bar structure:
bool fvgBull = low > high
bool fvgBear = high < low
For bullish gaps the script stores:
-top as low of the current bar
-bottom as high
For bearish gaps:
-top as high of the current bar
-bottom as low
This defines the price range that is considered the imbalance area.
3. Depth and Safety Score
Depth measures how far price has penetrated into the gap since its creation. For each bar, the script computes a currentDepth and updates the maximum depth:
float currentDepth = 0.0
if g.isBullish
if l < g.top
currentDepth := g.top - l
else
if h > g.bottom
currentDepth := h - g.bottom
if currentDepth > g.maxDepth
g.maxDepth := currentDepth
The safety score expresses how much of the gap remains intact:
float depthRatio = g.maxDepth / gapSize
float safetyScore = math.max(0.0, 1.0 - depthRatio)
safetyScore near 1: gap is mostly untouched
safetyScore near 0: gap is mostly or fully filled
4. Velocity Metric
Velocity captures how aggressively price moves inside the gap. It is based on the body to range ratio of each bar that trades within the gap and rewards bars that move in the same direction as the gap:
float barRange = h - l
float bodyRatio = math.abs(close - open) / barRange
float directionBonus = 0.0
if g.isBullish and close > open
directionBonus := 0.2
else if not g.isBullish and close < open
directionBonus := 0.2
float currentVelocity = math.min(bodyRatio + directionBonus, 1.0)
The gap keeps track of the strongest observed value:
if currentVelocity > g.maxVelocity
g.maxVelocity := currentVelocity
This maximum is later used as velScore when building the velocity rank bar.
5. Volume Accumulation and Volume Score
While price is trading inside a gap, the script accumulates the traded volume:
if isInside
g.testVolume += volume
It also keeps track of the number of tests and the volume at the start of the first test:
if g.status == "Fresh"
g.status := "Testing"
g.testCount := 1
g.testStartVolume := volume
An average volume is computed using a 20 period SMA:
float volAvg = ta.sma(volume, 20)
The expected volume is approximated as:
float expectedVol = volAvg * math.max(1, (bar_index - g.index) / 2)
The volume score is then:
float volScore = math.min(g.testVolume / expectedVol, 1.0)
This produces a normalized 0 to 1 metric that shows whether the gap has attracted more or less volume than expected over its lifetime.
6. Rank Bar Scaling
All three scores are projected visually along the time axis as horizontal bars. The script uses the age of the gap in bars as the maximum width:
float maxWidth = math.max(bar_index - g.index, 1)
Then each metric is mapped to a bar length:
int len1 = int(math.max(1, maxWidth * velScore))
g.rankBox1.set_right(g.index + len1)
int len2 = int(math.max(1, maxWidth * volScore))
g.rankBox2.set_right(g.index + len2)
int len3 = int(math.max(1, maxWidth * safetyScore))
g.rankBox3.set_right(g.index + len3)
This creates an intuitive visual representation where stronger metrics produce longer rank bars, making it easy to quickly compare the relative quality of multiple FVGs on the chart.
TedAlpha – Structure / FVG / OB Sessions:
Only looks for trades when price is inside your defined London or NY time blocks.
CHOCH:
Uses pivots to track swing highs/lows, then flags a bullish CHOCH when structure flips from LL/LH to HH/HL, and vice versa for bearish.
FVG:
Detects 3-candle imbalance and keeps the zone “active” for fvgLookback bars, then checks if price trades back into it.
Order Blocks:
On a CHOCH, grabs the last opposite candle (bearish before bull CHOCH = bullish OB, bullish before bear CHOCH = bearish OB) and marks its body as the OB zone.
Signal:
A valid long = bull CHOCH + in session + (price inside bullish FVG and/or bullish OB, depending on toggles).
Short is the mirror image.
RR 1:3:
SL uses the last swing low (for longs) or last swing high (for shorts), TP is auto-set at 3× that distance and plotted as lines.
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.
Prev Day ±1% BoundaryThis indicator plots dynamic intraday price bands based on the previous day’s close. It calculates a reference price using yesterday’s daily close and draws:
An upper boundary at +1% above the previous close
A lower boundary at –1% below the previous close
These levels are shown as horizontal lines across all intraday bars, with an optional shaded zone between them.
How to use:
Use the boundaries as intraday reference levels for potential support, resistance, or mean-reversion zones.
When price trades near the upper band, it may indicate short-term extension to the upside relative to the prior close.
When price trades near the lower band, it may indicate short-term extension to the downside.
The shaded region between the lines highlights a ±1% normal fluctuation zone around the previous day’s closing price.
This tool is especially useful for intraday traders on indices like SPX, providing quick visual context for how far price has moved relative to the prior session’s close.
9/39 EMA Crossover + ADX + RSI Filter (No builtin ADX)
9/39 EMA Crossover + ADX + RSI Filter
This indicator combines classic trend‑following EMAs with momentum and trend‑strength filters to generate high‑quality Buy/Sell signals. It is designed for traders who want cleaner entries, reduced noise, and confirmation‑based signals.
✅ How It Works
1. EMA Trend Logic
• Buy Signal:
9 EMA crosses above 39 EMA
• Sell Signal:
9 EMA crosses below 39 EMA
This captures short‑term momentum shifts within the broader trend.
✅ 2. ADX Trend Strength Filter
To avoid weak or sideways markets, signals only trigger when:
• ADX > 20
This ensures the market has enough directional strength before taking trades.
✅ 3. RSI Momentum Filter
Momentum must align with the direction of the crossover:
• Buy: RSI > 50
• Sell: RSI < 50
This prevents counter‑trend entries and improves signal reliability.
✅ Final Signal Conditions
✅ BUY
• 9 EMA crosses above 39 EMA
• ADX > 20
• RSI > 50
✅ SELL
• 9 EMA crosses below 39 EMA
• ADX > 20
• RSI < 50
✅ Features
• Clean BUY/SELL labels on chart
• ADX calculated manually (compatible with all Pine environments)
• Alerts included for automation
• Works on all timeframes and instruments
✅ Best Use‑Cases
• Trend‑following strategies
• Swing trading
• Intraday momentum confirmation
• Filtering out sideways/noisy markets






















