Golden Swing Strategy - Signal/Entry/SL/Target🔍 Golden Swing Strategy – Visual Indicator
This indicator combines momentum, trend direction, and volatility filters into a unified signal framework designed for swing trading. It generates buy/sell signals only when multiple conditions align, providing high-confluence trade setups with dynamic risk management.
________________________________________
🚀 Strategy Logic:
This tool uses a confluence of technical indicators to validate trade entries:
• RSI (20): Measures market momentum. Long signals require RSI > 50; short signals require RSI < 50.
• Stochastic (55,34,21): Identifies overbought/oversold turning points for timing.
• Bollinger Band Midline (20,2): Provides a volatility-based context filter.
• Supertrend (10,2): Determines trend direction and serves as dynamic support/resistance.
• ATR (5): Powers risk management features including Stop Loss (SL), Target, and Entry Band calculations.
________________________________________
✅ Signal Conditions:
• Buy Signal: RSI > 50 + Stoch %K crosses above %D + Price pulls back below Supertrend + Supertrend below BB midline
• Sell Signal: RSI < 50 + Stoch %K crosses below %D + Price pulls back above Supertrend + Supertrend above BB midline
________________________________________
🎯 Risk Management & Position Sizing:
• Entry Band: Supertrend ± 0.5 × ATR (shaded zone, optional)
• Stop Loss: Supertrend ± 1.1 × ATR (based on previous candle)
• Target: Supertrend ± 2.2 × ATR
• Position Size: Automatically calculated based on max loss input
________________________________________
⚙️ User Controls:
• All parameters (RSI length, ATR period, SL/TP multipliers, etc.) are fully adjustable
• Toggle each visual element independently:
o Buy/Sell signal markers
o Supertrend plot
o Entry band shading
o SL/TP levels
o Price labels
o Position size label
• Adjust how many recent bars show signals to keep charts clean
________________________________________
🧠 What Makes This Unique?
While RSI, Stochastics, Supertrend, and ATR are standard tools, this indicator does not simply mash them together. It applies them in a layered logic to:
• Validate trades only when momentum, volatility, and structure align
• Automate visual risk-reward mapping and position sizing
• Provide traders with interpretable, real-time confluence signals with clean visuals
The system is modular, transparent, and optimized for clarity, making it ideal for swing traders who want to reduce noise and make decisions based on multiple confirmations.
Oscillators
Commodity Trend Reactor [BigBeluga]
🔵 OVERVIEW
A dynamic trend-following oscillator built around the classic CCI, enhanced with intelligent price tracking and reversal signals.
Commodity Trend Reactor extends the traditional Commodity Channel Index (CCI) by integrating trend-trailing logic and reactive reversal markers. It visualizes trend direction using a trailing stop system and highlights potential exhaustion zones when CCI exceeds extreme thresholds. This dual-level system makes it ideal for both trend confirmation and mean-reversion alerts.
🔵 CONCEPTS
Based on the CCI (Commodity Channel Index) oscillator, which measures deviation from the average price.
Trend bias is determined by whether CCI is above or below user-defined thresholds.
Trailing price bands are used to lock in trend direction visually on the main chart.
Extreme values beyond ±200 are treated as potential reversal zones.
🔵 FEATURES\
CCI-Based Trend Shifts:
Triggers a bullish bias when CCI crosses above the upper threshold, and bearish when it crosses below the lower threshold.
Adaptive Trailing Stops:
In bullish mode, a trailing stop tracks the lowest price; in bearish mode, it tracks the highest.
Top & Bottom Markers:
When CCI surpasses +200 or drops below -200, it plots colored squares both on the oscillator and on price, marking potential reversal zones.
Background Highlights:
Each time a trend shift occurs, the background is softly colored (lime for bullish, orange for bearish) to highlight the change.
🔵 HOW TO USE
Use the oscillator to monitor when CCI crosses above or below threshold values to detect trend activation.
Enter trades in the direction of the trailing band once the trend bias is confirmed.
Watch for +200 and -200 square markers as warnings of potential mean reversals.
Use trailing stop areas as dynamic support/resistance to manage stop loss and exit strategies.
The background color changes offer clean confirmation of trend transitions on chart.
🔵 CONCLUSION
Commodity Trend Reactor transforms the simple CCI into a complete trend-reactive framework. With real-time trailing logic and clear reversal alerts, it serves both momentum traders and contrarian scalpers alike. Whether you’re trading breakouts or anticipating mean reversions, this indicator provides clarity and structure to your decision-making.
Laplace Momentum Percentile ║ BullVision 🔬 Overview
Laplace Momentum Percentile ║ BullVision is a custom-built trend analysis tool that applies Laplace-inspired smoothing to price action and maps the result to a historical percentile scale. This provides a contextual view of trend intensity, with optional signal refinement using a Kalman filter.
This indicator is designed for traders and analysts seeking a normalized, scale-independent perspective on market behavior. It does not attempt to predict price but instead helps interpret the relative strength or weakness of recent movements.
⚙️ Key Concepts
📉 Laplace-Based Smoothing
The core signal is built using a Laplace-style weighted average, applying an exponential decay to price values over a specified length. This emphasizes recent movements while still accounting for historical context.
🎯 Percentile Mapping
Rather than displaying the raw output, the filtered signal is converted into a percentile rank based on its position within a historical lookback window. This helps normalize interpretation across different assets and timeframes.
🧠 Optional Kalman Filter
For users seeking additional smoothing, a Kalman filter is included. This statistical method updates signal estimates dynamically, helping reduce short-term fluctuations without introducing significant lag.
🔧 User Settings
🔁 Transform Parameters
Transform Parameter (s): Controls the decay rate for Laplace weighting.
Calculation Length: Sets how many candles are used for smoothing.
📊 Percentile Settings
Lookback Period: Defines how far back to calculate the historical percentile ranking.
🧠 Kalman Filter Controls
Enable Kalman Filter: Optional toggle.
Process Noise / Measurement Noise: Adjust the filter’s responsiveness and tolerance to volatility.
🎨 Visual Settings
Show Raw Signal: Optionally display the pre-smoothed percentile value.
Thresholds: Customize upper and lower trend zone boundaries.
📈 Visual Output
Main Line: Smoothed percentile rank, color-coded based on strength.
Raw Line (Optional): The unsmoothed percentile value for comparison.
Trend Zones: Background shading highlights strong upward or downward regimes.
Live Label: Displays current percentile value and trend classification.
🧩 Trend Classification Logic
The indicator segments percentile values into five zones:
Above 80: Strong upward trend
50–80: Mild upward trend
20–50: Neutral zone
0–20: Mild downward trend
Below 0: Strong downward trend
🔍 Use Cases
This tool is intended as a visual and contextual aid for identifying trend regimes, assessing historical momentum strength, or supporting broader confluence-based analysis. It can be used in combination with other tools or frameworks at the discretion of the trader.
⚠️ Important Notes
This script does not provide buy or sell signals.
It is intended for educational and analytical purposes only.
It should be used as part of a broader decision-making process.
Past signal behavior should not be interpreted as indicative of future results.
改良版 TOP/END 検知(シンプル動作確認版)//@version=6
indicator("改良版 TOP/END 検知(シンプル動作確認版)", overlay = true, max_labels_count = 100)
// ──────────────────────────────────────────
// 1. 基本パラメータ(シンプル版)
// ──────────────────────────────────────────
// 基本設定
adxLen = input.int(14, "ADX期間", group="基本設定")
rsiLen = input.int(14, "RSI期間", group="基本設定")
// 天井検知設定
topAdxThreshold = input.int(25, "天井ADX閾値", group="天井検知")
topRsiThreshold = input.int(70, "天井RSI閾値", group="天井検知")
// 強い下落検知設定(精度重視版)
enableStrongDecline = input.bool(true, "強い下落検知", group="強い下落検知")
strongDeclineAdx = input.int(22, "強下落ADX閾値", minval=15, maxval=35, group="強い下落検知")
strongDeclineRsi = input.int(52, "強下落RSI閾値", minval=40, maxval=65, group="強い下落検知")
strongDeclineVolume = input.float(1.3, "強下落出来高倍率", minval=0.8, maxval=2.5, group="強い下落検知")
earlyDetection = input.bool(true, "初動検知モード", tooltip="ONで早期検知、OFFで確実性重視", group="強い下落検知")
minDeclineForSignal = input.float(1.0, "最小価格下落(%)", minval=0.5, maxval=3.0, group="強い下落検知")
// 底検知設定(精度重視版)
bottomRsiThreshold = input.int(32, "底RSI閾値", minval=20, maxval=45, group="底検知")
minDeclineRate = input.float(2.8, "最小下落率(%)", minval=1.5, maxval=8.0, group="底検知")
bounceThreshold = input.float(1.2, "反発検知(%)", minval=0.5, maxval=2.5, group="底検知")
rsiRecoveryStrength = input.int(3, "RSI回復強度", minval=1, maxval=5, group="底検知")
requireVolumeConfirmation = input.bool(true, "出来高確認必須", group="底検知")
// 精度向上設定(新機能)
enableQualityFilter = input.bool(true, "品質フィルタ", tooltip="低品質シグナルを除去", group="精度向上")
minSignalGap = input.int(8, "シグナル間隔(最小足数)", minval=3, maxval=20, group="精度向上")
trendFilter = input.bool(true, "トレンドフィルタ", tooltip="トレンドに逆らうシグナルを除去", group="精度向上")
strengthThreshold = input.float(1.5, "シグナル強度閾値", minval=1.0, maxval=3.0, group="精度向上")
// 調整用設定(精度重視)
sensitivity = input.string("標準", "全体感度", options= , group="調整設定")
confirmationMode = input.bool(true, "確認モード", tooltip="ONで誤検知減少、OFFで早期検知", group="調整設定")
strictMode = input.bool(false, "厳格モード", tooltip="最高精度、シグナル数減少", group="調整設定")
// 表示設定
showTopLabels = input.bool(true, "天井ラベル表示", group="表示設定")
showBottomLabels = input.bool(true, "底ラベル表示", group="表示設定")
showStrongDecline = input.bool(true, "強い下落表示", group="表示設定")
// デバッグ設定
debugMode = input.bool(false, "デバッグモード", group="デバッグ")
// ──────────────────────────────────────────
// 2. インジケータ計算(精度向上版)
// ──────────────────────────────────────────
// ★変数の初期化(エラー回避)
enableOptionStrategy = true
hedgeRatio = 0.3
expectedDeclineTarget = 5.0
optionHoldingPeriod = 14
showOptionSignals = true
// ★ノイズ除去関連変数の初期化(バランス調整)
noiseReductionLevel = "標準"
consecutiveDeclineRequired = 1
minTrendStrength = 1.5
requireSignificantMove = false
// 基本指標
= ta.dmi(14, adxLen)
rsi = ta.rsi(close, rsiLen)
vol_avg = ta.sma(volume, 20)
// 移動平均(精度向上用)
sma20 = ta.sma(close, 20)
sma50 = ta.sma(close, 50)
ema12 = ta.ema(close, 12)
ema26 = ta.ema(close, 26)
// 高値追跡(改良版)
var float lastHigh = na
var int lastHighBar = na
if high > nz(lastHigh, high)
lastHigh := high
lastHighBar := bar_index
// 市場環境判定(新機能)
trendUp = close > sma20 and sma20 > sma50 and ema12 > ema26
trendDown = close < sma20 and sma20 < sma50 and ema12 < ema26
sideways = not trendUp and not trendDown
// ボラティリティ測定
atr14 = ta.atr(14)
atr20 = ta.atr(20)
highVolatility = atr14 > atr20 * 1.3
lowVolatility = atr14 < atr20 * 0.7
// 価格位置判定
pricePosition = (close - ta.lowest(low, 20)) / (ta.highest(high, 20) - ta.lowest(low, 20))
nearHigh = pricePosition > 0.8
nearLow = pricePosition < 0.2
// ──────────────────────────────────────────
// 3. 精密な天井検知
// ──────────────────────────────────────────
// 感度調整(厳格モード対応)
sensitivityMultiplier = strictMode ? 1.3 : sensitivity == "高" ? 0.8 : sensitivity == "標準" ? 1.0 : 1.2
// 天井条件(精度重視)
basicTopCondition = adx >= topAdxThreshold * sensitivityMultiplier and dip >= topAdxThreshold * sensitivityMultiplier and rsi >= topRsiThreshold
// 価格確認(厳格化)
priceHigh = high >= ta.highest(high, 8) * 0.995
hasDeclined = close < close and close < close
significantDecline = (high - close) / high > 0.015
// 品質フィルタ(新機能)
qualityFilter = true
if enableQualityFilter
// RSIダイバージェンス確認
rsiDivergence = rsi < rsi and high >= high
// 出来高確認
volumeOk = na(volume) ? true : volume > vol_avg * 0.8
// トレンド確認
trendOk = not trendFilter or (trendUp or sideways)
qualityFilter := (rsiDivergence or significantDecline) and volumeOk and trendOk
// 最終天井シグナル(精度重視)
topCondition = basicTopCondition and priceHigh and hasDeclined and qualityFilter
topSignal = topCondition
// ──────────────────────────────────────────
// 4. 強い下落検知(ノイズ除去強化版)
// ──────────────────────────────────────────
// ノイズ除去レベルに応じた調整
noiseMultiplier = noiseReductionLevel == "弱" ? 0.8 : noiseReductionLevel == "標準" ? 1.0 : noiseReductionLevel == "強" ? 1.3 : 1.6
// シグナル強度計算(改良版)
calculateSignalStrength() =>
strength = 0.0
// ADX強度(より厳格)
if adx >= strongDeclineAdx * sensitivityMultiplier * noiseMultiplier
strength += (adx / 40.0) * 1.5
// DI-優勢度(より重要視)
if dim > dip and dim >= strongDeclineAdx * sensitivityMultiplier * noiseMultiplier * 0.9
strength += ((dim - dip) / 30.0) * 2.0
// RSI位置(より厳格)
if rsi < strongDeclineRsi * noiseMultiplier
strength += ((strongDeclineRsi - rsi) / 30.0) * 1.5
// 出来高強度(重要度向上)
if not na(volume) and volume > vol_avg * strongDeclineVolume * noiseMultiplier
strength += ((volume / vol_avg - 1.0) * 2.0)
// 価格下落強度(最重要)
priceDeclinePercent = (close - close) / close * 100
if priceDeclinePercent >= minDeclineForSignal * noiseMultiplier
strength += (priceDeclinePercent / 3.0) * 2.5
// 連続下落ボーナス
consecutiveDeclines = 0
for i = 0 to consecutiveDeclineRequired - 1
if close < close
consecutiveDeclines += 1
else
break
if consecutiveDeclines >= consecutiveDeclineRequired
strength += consecutiveDeclines * 0.8
// トレンド強度ボーナス
if dim > dip * 1.3 and adx > 20
strength += minTrendStrength * 0.5
strength
// 強い下落条件(大幅強化)
strongDeclineCondition = false
if enableStrongDecline
// 基本条件(厳格化)
adxCondition = adx >= strongDeclineAdx * sensitivityMultiplier * noiseMultiplier
dimCondition = dim >= strongDeclineAdx * sensitivityMultiplier * noiseMultiplier * 0.8 and dim > dip
rsiCondition = rsi < strongDeclineRsi * noiseMultiplier
volumeCondition = na(volume) ? false : volume > vol_avg * strongDeclineVolume * noiseMultiplier
// 価格下落確認(厳格化)
priceDeclinePercent = (close - close) / close * 100
priceDeclineCondition = priceDeclinePercent >= minDeclineForSignal * noiseMultiplier
// 連続下落確認
consecutiveDeclines = 0
for i = 0 to consecutiveDeclineRequired - 1
if close < close
consecutiveDeclines += 1
else
break
consecutiveCondition = consecutiveDeclines >= consecutiveDeclineRequired
// シグナル強度確認(厳格化)
signalStrength = calculateSignalStrength()
strengthCondition = signalStrength >= strengthThreshold * noiseMultiplier
// 重要な動きのみ検知
significantMoveCondition = true
if requireSignificantMove
// より大きな動きのみを重要とみなす
atrRatio = (high - low) / ta.atr(14)
priceImpact = priceDeclinePercent >= minDeclineForSignal * 1.5
volumeImpact = na(volume) ? false : volume > vol_avg * 1.8
significantMoveCondition := (atrRatio > 1.2) and (priceImpact or volumeImpact)
// トレンドフィルタ(厳格化)
trendCondition = not trendFilter or (trendDown or (dim > dip * 1.2 and adx > 18))
// すべての条件をAND結合(バランス調整)
if earlyDetection
// 早期検知:重要な下落を見逃さないよう条件緩和
basicCondition = (adxCondition or adx > 18) and dimCondition and rsiCondition
priceCondition = priceDeclineCondition or close < close * 0.995
consecutiveOk = consecutiveCondition or consecutiveDeclines >= 1 // 最低1足下落があればOK
strongDeclineCondition := basicCondition and (priceCondition or consecutiveOk) and strengthCondition and trendCondition
else
// 確実性重視:それでも少し緩和
basicCondition = adxCondition and dimCondition and rsiCondition and (volumeCondition or significantMoveCondition)
priceCondition = priceDeclineCondition and close < open
strongDeclineCondition := basicCondition and priceCondition and consecutiveCondition and strengthCondition and trendCondition
// 確認モード(バランス調整)
strongDeclineSignal = false
if confirmationMode
// 確認モード:2本での確認(3本から2本に緩和)
var int strongDeclineCount = 0
var float cumulativeStrength = 0.0
currentStrength = calculateSignalStrength()
if strongDeclineCondition
strongDeclineCount += 1
cumulativeStrength += currentStrength
else
strongDeclineCount := 0
cumulativeStrength := 0.0
// 確認の条件を緩和
confirmationThreshold = strictMode ? 2 : 1 // 厳格モードでも2本、通常は1本
highStrengthThreshold = strengthThreshold * 2.0
ultraHighStrengthThreshold = strengthThreshold * 3.0 // 4.0から3.0に緩和
strongDeclineSignal := (strongDeclineCount >= confirmationThreshold) or (strongDeclineCount >= 1 and currentStrength >= ultraHighStrengthThreshold)
else
// 通常モード:即座に反応
strongDeclineSignal := strongDeclineCondition
// ──────────────────────────────────────────
// 5. 底検知(精度重視版)
// ──────────────────────────────────────────
// 下落率計算(改良版)
declineFromHigh = nz(lastHigh) > 0 ? (nz(lastHigh) - low) / nz(lastHigh) * 100 : 0
// 時間経過チェック(高値からの経過時間)
barsFromHigh = nz(lastHighBar) > 0 ? bar_index - nz(lastHighBar) : 999
timeFilter = barsFromHigh >= 5 // 高値から最低5本経過
// 底検知条件(精度重視)
// 基本条件(厳格化)
basicBottomCondition = rsi <= bottomRsiThreshold * sensitivityMultiplier and declineFromHigh >= minDeclineRate and timeFilter
// 反発検知(改良版)
priceBounce = close > close * (1 + bounceThreshold/100)
strongBounce = close > low * (1 + bounceThreshold*1.5/100) and close > open * 1.005
// RSI回復検知(強度調整可能)
rsiRecoveryCondition = false
rsiRecoveryCount = 0
for i = 1 to rsiRecoveryStrength
if rsi > rsi
rsiRecoveryCount += 1
rsiRecoveryCondition := rsiRecoveryCount >= math.ceil(rsiRecoveryStrength * 0.6)
// 出来高分析(精度向上)
volumeAnalysis = true
if requireVolumeConfirmation
// 出来高枯渇確認
volumeDrying = na(volume) ? true : volume < vol_avg * 0.6
// 反発時の出来高増加
volumeIncrease = na(volume) ? true : volume > vol_avg * 1.1
volumeAnalysis := volumeDrying or (priceBounce and volumeIncrease)
// 価格安定確認(改良版)
priceStabilizing = math.abs(close - close ) / close < 0.015
lowTesting = low <= ta.lowest(low, 5) * 1.002 // 安値テスト
// ADX収束確認(トレンド終了の兆候)
adxDeclining = adx < adx and adx < adx
// 最終底シグナル(複数パターン - 精度重視)
// パターン1: 標準的な底(厳格化)
standardBottomCondition = basicBottomCondition and (priceBounce or strongBounce) and rsiRecoveryCondition and volumeAnalysis
standardBottom = standardBottomCondition
// パターン2: 強い反発底(条件追加)
strongBottomCondition = rsi <= bottomRsiThreshold * sensitivityMultiplier + 8 and strongBounce and rsiRecoveryCondition and volumeAnalysis and adxDeclining
strongBottom = strongBottomCondition
// パターン3: 大底パターン(精密化)
dryingBottomCondition = declineFromHigh >= minDeclineRate * 1.8 and volumeAnalysis and rsiRecoveryCondition and (priceStabilizing or lowTesting) and barsFromHigh >= 10
dryingBottom = dryingBottomCondition
// 品質フィルタ(底用)
bottomQualityFilter = true
if enableQualityFilter
// 位置確認(安値圏であること)
positionOk = nearLow or pricePosition < 0.3
// RSI売られすぎ確認
rsiOversoldOk = rsi <= 45
// トレンド確認
trendOk = not trendFilter or (trendDown or sideways or not trendUp)
bottomQualityFilter := positionOk and rsiOversoldOk and trendOk
// 最終判定(品質フィルタ適用)
bottomSignal = (standardBottom or strongBottom or dryingBottom) and bottomQualityFilter
// ──────────────────────────────────────────
// 6. シグナル管理(ノイズ除去強化版)
// ──────────────────────────────────────────
var int lastTopBar = na
var int lastBottomBar = na
var int lastStrongDeclineBar = na
// 動的間隔調整(ノイズ除去強化)
baseDynamicGap = minSignalGap * noiseMultiplier // ノイズレベルに応じて間隔調整
dynamicGap = baseDynamicGap
if highVolatility
dynamicGap := math.min(baseDynamicGap, math.max(baseDynamicGap - 3, 8)) // 高ボラでも最小8足は確保
else if lowVolatility
dynamicGap := baseDynamicGap + 5 // 低ボラ時は更に間隔延長
// 厳格な間隔チェック
topAllowed = na(lastTopBar) or bar_index - lastTopBar >= dynamicGap + 5
bottomAllowed = na(lastBottomBar) or bar_index - lastBottomBar >= dynamicGap + 2
strongDeclineAllowed = na(lastStrongDeclineBar) or bar_index - lastStrongDeclineBar >= math.max(dynamicGap, 10)
// 基本シグナル(競合チェック前)
basicFinalTopSignal = topSignal and topAllowed
basicFinalStrongDeclineSignal = strongDeclineSignal and strongDeclineAllowed
basicFinalBottomSignal = bottomSignal and bottomAllowed
// 競合シグナル排除(強化版)
// 天井と強い下落の適切な間隔確保
topConflict = basicFinalStrongDeclineSignal and not na(lastStrongDeclineBar) and bar_index - lastStrongDeclineBar <= 5
strongDeclineConflict = basicFinalTopSignal and not na(lastTopBar) and bar_index - lastTopBar <= 5
// 最終シグナル(競合排除 + 品質確認)
finalTopSignal = basicFinalTopSignal and not topConflict
finalStrongDeclineSignal = basicFinalStrongDeclineSignal and not strongDeclineConflict
finalBottomSignal = basicFinalBottomSignal
// 厳格モードでの追加フィルタ(大幅強化)
if strictMode
// 厳格モード:更に厳しい条件
topStrengthOk = adx >= topAdxThreshold * 1.3 and rsi >= topRsiThreshold + 8
declineStrengthOk = calculateSignalStrength() >= strengthThreshold * 1.5
bottomStrengthOk = declineFromHigh >= minDeclineRate * 1.3 and rsi <= bottomRsiThreshold - 5
finalTopSignal := finalTopSignal and topStrengthOk
finalStrongDeclineSignal := finalStrongDeclineSignal and declineStrengthOk
finalBottomSignal := finalBottomSignal and bottomStrengthOk
// 最終品質チェック(ノイズ除去の最後の砦)
if requireSignificantMove and finalStrongDeclineSignal
// 本当に重要な動きかをチェック
recentVolatility = ta.stdev(ta.change(close), 10)
currentMove = math.abs(ta.change(close))
isSignificant = currentMove > recentVolatility * 1.5
finalStrongDeclineSignal := finalStrongDeclineSignal and isSignificant
// バー番号更新
if finalTopSignal
lastTopBar := bar_index
if finalBottomSignal
lastBottomBar := bar_index
if finalStrongDeclineSignal
lastStrongDeclineBar := bar_index
// ──────────────────────────────────────────
// 7. ラベル表示(改良版)
// ──────────────────────────────────────────
labelOffset = ta.atr(14) * 1.5
// 天井ラベル
if showTopLabels and finalTopSignal
label.new(bar_index, high + labelOffset, "TOP", style=label.style_label_down, color=color.red, textcolor=color.white, size=size.normal)
// 強い下落ラベル(詳細情報付き)
if showStrongDecline and finalStrongDeclineSignal
// ラベルテキストを状況に応じて変更
labelText = earlyDetection ? "初動" : "強下落"
labelColor = earlyDetection ? color.orange : color.maroon
// 確認モードの場合は追加情報
if confirmationMode
labelText := labelText + "確認"
label.new(bar_index, high + labelOffset * 0.7, labelText, style=label.style_label_down, color=labelColor, textcolor=color.white, size=size.normal)
// 底ラベル(パターン別表示)
if showBottomLabels and finalBottomSignal
// 底のパターンを判定してラベル変更
endLabelText = "END"
endLabelColor = color.green
if strongBottom
endLabelText := "強反発"
endLabelColor := color.lime
else if dryingBottom
endLabelText := "大底"
endLabelColor := color.purple
label.new(bar_index, low - labelOffset, endLabelText, style=label.style_label_up, color=endLabelColor, textcolor=color.white, size=size.normal)
// ──────────────────────────────────────────
// 8. デバッグ表示(改良版)
// ──────────────────────────────────────────
// デバッグ条件を事前定義
showTopCondition = debugMode and basicTopCondition
showStrongDeclineCondition = debugMode and strongDeclineCondition
showBasicBottomCondition = debugMode and basicBottomCondition
// 強度とフィルタ状況
showStrengthOk = debugMode and calculateSignalStrength() >= strengthThreshold
showStrengthValue = debugMode and calculateSignalStrength() > 0
// 主要デバッグ情報
plotchar(showTopCondition, "TopCondition", "T", location.top, color.yellow)
plotchar(showStrongDeclineCondition, "StrongDecline", "D", location.top, color.red)
plotchar(showBasicBottomCondition, "BasicBottom", "B", location.bottom, color.blue)
// 強度マーカー(重要)- 説明付き
plotchar(showStrengthOk, "StrengthOk", "!", location.top, color.orange) // シグナル強度が閾値以上
// 最終シグナル確認マーカー(最重要)
plotchar(debugMode and finalStrongDeclineSignal, "FinalDecline", "F", location.abovebar, color.red) // 最終的にシグナル発生
plotchar(debugMode and finalBottomSignal, "FinalBottom", "E", location.belowbar, color.green)
// ★フィルタリング状況の詳細表示(新機能)
showFilterBlocked = debugMode and strongDeclineCondition and not finalStrongDeclineSignal
plotchar(showFilterBlocked, "FilterBlocked", "X", location.top, color.gray) // 条件は満たすがフィルタで除去
// ★各条件の個別チェック(新機能)
showAdxOk = debugMode and adx >= strongDeclineAdx * sensitivityMultiplier * noiseMultiplier
showDimOk = debugMode and dim >= strongDeclineAdx * sensitivityMultiplier * noiseMultiplier * 0.8 and dim > dip
showRsiOk = debugMode and rsi < strongDeclineRsi * noiseMultiplier
showVolumeOk = debugMode and (na(volume) ? false : volume > vol_avg * strongDeclineVolume * noiseMultiplier)
plotchar(showAdxOk, "ADX_OK", "A", location.bottom, color.blue)
plotchar(showDimOk, "DIM_OK", "M", location.bottom, color.orange)
plotchar(showRsiOk, "RSI_OK", "R", location.bottom, color.purple)
plotchar(showVolumeOk, "VOL_OK", "V", location.bottom, color.teal)
// 背景色でトレンド表示(簡素化)
trendBg = debugMode ? (trendUp ? color.new(color.green, 97) : trendDown ? color.new(color.red, 97) : na) : na
bgcolor(trendBg, title="トレンド")
// ──────────────────────────────────────────
// 9. アラート(ノイズ除去強化版)
// ──────────────────────────────────────────
if finalTopSignal
// 天井の品質情報を含む
qualityInfo = enableQualityFilter ? " (品質フィルタ適用)" : ""
strengthInfo = strictMode ? " " : ""
alertMsg = "🔴 精密天井検知" + strengthInfo + qualityInfo + ": ADX=" + str.tostring(adx, "#.#") + " RSI=" + str.tostring(rsi, "#.#") + " DI+=" + str.tostring(dip, "#.#")
alert(alertMsg, alert.freq_once_per_bar)
if finalStrongDeclineSignal
// 基本アラート情報
alertType = earlyDetection ? "🟠 クラッシュ初動検知" : "🔻 強い下落"
confirmInfo = confirmationMode ? " (確認済み)" : ""
strengthValue = calculateSignalStrength()
strengthInfo = strictMode ? " 強度:" + str.tostring(strengthValue, "#.##") : ""
baseAlert = alertType + strengthInfo + confirmInfo + ": ADX=" + str.tostring(adx, "#.#") + " DI-=" + str.tostring(dim, "#.#") + " RSI=" + str.tostring(rsi, "#.#")
// ★オプション戦略アラート(条件簡素化)
if showOptionSignals // enableOptionStrategyを削除
// シグナル強度に基づくリスク評価
signalStrength = calculateSignalStrength()
// リスクレベル別推奨アクション(閾値緩和)
putAction = ""
riskLvl = "低"
if signalStrength >= strengthThreshold * 1.8
putAction := "【PUT積極推奨】"
riskLvl := "高"
else if signalStrength >= strengthThreshold * 1.3
putAction := "【PUT検討推奨】"
riskLvl := "中"
else if signalStrength >= strengthThreshold * 0.8
putAction := "【PUT軽量推奨】"
riskLvl := "低"
// ヘッジ戦略情報
hedgeInfo = " | ヘッジ比率:" + str.tostring(hedgeRatio * 100, "#") + "%"
profitTarget = " | 想定下落:" + str.tostring(expectedDeclineTarget, "#.#") + "%"
holdingPeriod = " | 推奨期間:" + str.tostring(optionHoldingPeriod) + "日"
optionAlert = putAction + hedgeInfo + profitTarget + holdingPeriod
// 統合アラート
fullAlert = baseAlert + " " + optionAlert
alert(fullAlert, alert.freq_once_per_bar)
else
alert(baseAlert, alert.freq_once_per_bar)
if finalBottomSignal
// 底のパターン別メッセージ
bottomType = "🟢 底検知"
if strongBottomCondition
bottomType := "🟢 強反発底"
else if dryingBottomCondition
bottomType := "🟣 大底"
qualityInfo = enableQualityFilter ? " (品質確認済み)" : ""
timeInfo = " 高値から" + str.tostring(barsFromHigh) + "本経過"
strengthInfo = strictMode ? " " : ""
baseBottomAlert = bottomType + strengthInfo + qualityInfo + timeInfo + ": RSI=" + str.tostring(rsi, "#.#") + " 下落率=" + str.tostring(declineFromHigh, "#.#") + "%"
// ★オプション利確アラート(条件簡素化)
if showOptionSignals and not na(lastStrongDeclineBar) // enableOptionStrategyを削除
barsFromDecline = bar_index - lastStrongDeclineBar
if barsFromDecline <= math.max(optionHoldingPeriod, 30) // 期間延長
actualDecline = declineFromHigh
profitRatio = actualDecline / expectedDeclineTarget * 100
optionExitInfo = ""
if actualDecline >= expectedDeclineTarget * 0.5 // 0.7から0.5に緩和
optionExitInfo := " 【PUT利確推奨】達成度:" + str.tostring(profitRatio, "#") + "% | 経過:" + str.tostring(barsFromDecline) + "日"
else if actualDecline >= expectedDeclineTarget * 0.3 // 30%達成でも表示
optionExitInfo := " 【PUT利確検討】達成度:" + str.tostring(profitRatio, "#") + "% | 経過:" + str.tostring(barsFromDecline) + "日"
if optionExitInfo != ""
fullBottomAlert = baseBottomAlert + optionExitInfo
alert(fullBottomAlert, alert.freq_once_per_bar)
else
alert(baseBottomAlert, alert.freq_once_per_bar)
else
alert(baseBottomAlert, alert.freq_once_per_bar)
else
alert(baseBottomAlert, alert.freq_once_per_bar)
Strategy Builder With IndicatorsThis strategy script is designed for traders who enjoy building systems using multiple indicators.
Please note: This script does not include any built-in indicators. Instead, it works by referencing the plot outputs of the indicators you’ve already added to your chart.
For example, if you add a MACD and an ATR indicator to your chart, you can assign their plot values as inputs in the settings panel of this strategy.
• MACD as a trigger
• ATR as a filter
How Filters Work
Filters check whether certain conditions are met before a trade can be opened. For instance, if you set a filter like ATR > 30, then no trade will be executed unless that condition is true — even if the trigger fires.
All filters are linked, meaning every active filter must be satisfied for a trade to occur.
How Triggers Work
Triggers are what actually fire a trade signal — such as a moving average crossover or RSI breaking above a specific level. Unlike filters, triggers are independent. Only one active trigger needs to be true for the trade to execute.
Thanks to its modular structure, this strategy can be used with any indicator of your choice.
⸻
Risk Management Features
In the settings, you’ll find flexible options for:
• Stop Loss (SL)
• Trailing Stop Loss (TSL)
• Multi Take-Profit (TP)
These features enhance trade safety and let you tailor your risk management.
SL types available:
• Tick-based SL
• Percent-based SL
• ATR-based SL
Once you select your preferred SL type, you can fine-tune its distance using the offset field.
Trailing SL allows your stop to follow price as it moves in your favor — helping to lock in profits.
Multi-TP lets you take profits at two different levels, helping you secure gains while leaving room for extended moves.
Breakeven option is also available to automatically move your SL to entry after reaching a profit threshold.
⸻
How to Build a Solid Strategy
Let’s break down a good setup into three key components:
1. Trend Filter
Avoid trading against the trend — that’s like swimming against the current.
Use a filter like:
• Supertrend
• Momentum indicators
• Candlestick bias, etc.
Example: In this case, I used Supertrend and filtered for trades only if the price is above the uptrend line.
2. Trigger Condition
Once we confirm the trend is on our side, we need a trigger to execute at the right moment. This can be:
• RSI cross
• Candlestick patterns
• Trendline breaks
• Moving average crossovers, etc.
Example: I used RSI crossing above 50 as the entry trigger.
3. Risk Management
Even in the right trend at the right time — anything can happen. That’s why you should always define Stop Loss and Take Profit levels.
⸻
And there you have it! Your strategy is ready to backtest, refine, and deploy with alerts for live trading.
Questions or suggestions? Feel free to reach out
BTC Thermocap Z-ScoreBTC Thermocap Indicator Overview
The BTC Thermocap is a specialized on-chain ratio indicator designed to provide deeper insight into Bitcoin's market valuation relative to its cumulative issuance. By comparing the current market price of Bitcoin to the total value of all BTC ever mined (also known as "thermocap"), this indicator helps identify potential overvaluation or undervaluation periods within the Bitcoin market cycle.
Key Features and Customizable Inputs:
Moving Average Length (MA Length)
Moving Average Type (MA Type) - SMA or EMA
Z-Score Calculation Length
Z-Score Toggle (Use Z-Score)
♒Hurst Cycle Channel Oscillator v4.0 by IRUNTV
Hurst Cycle Channel Oscillator v4.0 by IRUNTV W/ Advanced Divergence
Short Title: HCCO_v4_IRUNTV
📜 Script Description
//Disclaimer//
* What could be considered a clone of Hurst Cycle Channel Oscillator v1.0 by Cryptorhythms with arguably some improvements, since the original was locked i opted to creating my own version with much more flexibility in mind. I also used the original Hurst Cycle Channels by Lazybear as foundation for some of my primary logic and intentionally made it visually identical to the already popular Cryptorhythms version.
// End Disclaimer //
Unlock deeper market insights with the Hurst Cycle Channel Oscillator v4.0 by IRUNTV , a sophisticated oscillator meticulously designed to visualize cyclical price movements and pinpoint potential turning points through an advanced divergence detection engine. This indicator is rooted in the foundational principles of J.M. Hurst's cycle theory, offering a nuanced view of market dynamics by illustrating how current price interacts with dynamic, Hurst-style cycle channels.
At its core, the Hurst Cycle Channel Oscillator v4.0 transforms complex cycle analysis into an intuitive oscillator format. It aims to go beyond simple overbought or oversold conditions, highlighting the inherent rhythm of the market. This can empower you to anticipate shifts in momentum and identify higher-probability trading setups with greater confidence.
This v4.0 features a significantly enhanced divergence engine capable of identifying both Regular and Hidden bullish/bearish divergences with improved accuracy and extensive user customization.
📊 What It Displays & How It Works
Main Oscillator (-F - White Line): This is your primary plot. It represents the normalized position of the selected Source price (default: close) within a dynamically calculated medium-term Hurst-style channel.
Values typically range from 0 (price at channel bottom) to 1 (price at channel top).
Values above 1.0 suggest price has broken robustly above the medium-term channel (potentially overbought or indicating strong bullish momentum).
Values below 0.0 suggest price has broken robustly below the medium-term channel (potentially oversold or indicating strong bearish momentum).
Signal Line (H F - Yellow Line): This line represents the normalized position of the short-term cycle's median within the same medium-term Hurst-style channel. It acts as a dynamic signal line, providing context to the Main Oscillator's movements.
Secondary Oscillator (L F - Aqua Line): Offers a longer-term or smoothed perspective, by default an EMA of the H F Signal Line. Its calculation method and length are configurable.
Dynamic Channels (Internal Calculation): The oscillator values are derived from channels constructed using Running Moving Averages (RMA) of price and Average True Range (ATR) for dynamic width. These calculations incorporate Hurst's concepts of half-span cycle lengths and forward displacement, aiming for a more adaptive and responsive market analysis.
Key Visual Cues:
Divergence Markers (R / H): Clearly marked on the oscillator.
R ( Regular Divergence ): Signals potential trend exhaustion and upcoming reversals.
Bullish (Green R): Price forms Lower Lows (LL) while the Main Oscillator (-F) forms Higher Lows (HL).
Bearish (Red R): Price forms Higher Highs (HH) while the Main Oscillator (-F) forms Lower Highs (LH).
H ( Hidden Divergence ): Signals potential trend continuations, often appearing during corrections.
Bullish (Green H): Price forms Higher Lows (HL) while the Main Oscillator (-F) forms Lower Lows (LL).
Bearish (Red H): Price forms Lower Highs (LH) while the Main Oscillator (-F) forms Higher Highs (HH).
Divergence Lines: Lines are automatically drawn on the oscillator connecting the two pivot points that form a confirmed divergence, providing clear visual confirmation of the pattern. A configurable maximum number of lines are displayed to maintain chart clarity.
Background Shading: The oscillator pane's background is dynamically colored to offer an at-a-glance indication of prevailing market sentiment or conditions:
Green Zones: Typically indicate bullish conditions or oscillator strength (e.g., above the mid-level or signal line).
Red Zones: Typically indicate bearish conditions or oscillator weakness.
(The script includes logic for granular shading based on user-configurable overbought/oversold warning levels and the 0.5 mid-level).
Reference Levels: Horizontal lines are plotted at 0.0, 0.5, and 1.0, along with user-configurable "Warning Levels" (defaulting to 0.2 and 0.8) to help define critical zones of interest and potential price reactions.
💡 How to Use It - Potential Strategies
The Hurst Cycle Channel Oscillator v4.0 is a versatile tool. Here are some ways it can be incorporated into your trading analysis:
Divergence Trading (Primary Use):
Regular Divergences (R): Identify these as leading indicators that an existing trend might be losing momentum and could be approaching a reversal. Always seek confirmation from other technical analysis tools or price action.
Hidden Divergences (H): These often occur during pullbacks or consolidations within an established trend, potentially signaling an opportune moment to enter in the direction of the primary trend.
Oscillator / Signal Line Crosses:
When the Main Oscillator (-F) crosses above the Signal Line (H F): Potential bullish signal or strengthening momentum.
When the Main Oscillator (-F) crosses below the Signal Line (H F): Potential bearish signal or weakening momentum.
Overbought / Oversold (OB/OS) Conditions:
Extreme Levels: osc_F > 1.0 (extreme overbought) or osc_F < 0.0 (extreme oversold) can highlight unsustainable price extensions, often preceding periods of consolidation or potential reversals.
Warning Levels: Utilize the configurable levels (e.g., 0.8 and 0.2 by default) as earlier indications of potential overbought or oversold conditions, allowing for proactive adjustments.
Mid-Level (0.5) Dynamics:
osc_F crossing above 0.5 can suggest a shift towards a more bullish market bias.
osc_F crossing below 0.5 can suggest a shift towards a more bearish market bias. The 0.5 level often acts as a dynamic support/resistance within the oscillator's range.
Trend Confirmation & Strength: The color of the background shading can serve as a quick visual guide to the dominant short-term market sentiment as interpreted by the oscillator's position and behavior.
⚙️ Key Features & Customization (by IRUNTV)
Adjustable Cycle Parameters: Fully customize the Short Term Cycle Length, Medium Term Cycle Length, and their respective Multipliers to tailor the indicator's responsiveness to different assets, volatility, and timeframes.
Customizable Source: Select your preferred input source (close, hl2, hlc3, etc.) for the core calculations.
Comprehensive Plot Customization: Toggle the visibility and personalize the colors and line styles for all major plotted elements (oscillators, signal lines, divergence markers) through an intuitive "Plot Visibility & Style" settings group.
Advanced Divergence Engine Settings:
Div Pivot Left/Right Lookback: Fine-tune the sensitivity of pivot point detection for divergences.
Max Bars Between Div Pivots: Define the maximum historical window for identifying valid divergence formations.
Max Stored Pivots for Divs: Optimize performance by managing the memory used for storing historical pivot data, while still enabling detection of relevant long-term divergences.
Max Div Lines to Show: Maintain chart clarity by controlling the number of concurrently displayed divergence lines.
Built-in Alerts: Stay informed with comprehensive, configurable alerts for:
Main Oscillator / Signal Line crosses.
All four identified types of Divergences (Regular Bullish/Bearish, Hidden Bullish/Bearish).
Oscillator crossing into user-defined Overbought/Oversold warning levels.
Oscillator breaching the extreme 0.0 or 1.0 channel boundaries.
⚠️ Disclaimer
The "Hurst Cycle Channel Oscillator v4.0 by IRUNTV" is provided for educational and informational purposes only and does not constitute financial advice or a recommendation to buy or sell any asset. Trading and investing in financial markets involve substantial risk of loss. Past performance is not indicative of future results. All users should conduct their own thorough research, backtesting, and due diligence before making any trading or investment decisions. Use this tool responsibly and as part of a comprehensive trading strategy. IRUNTV assumes no liability for any trading or investment decisions made based on this indicator.
Kapsamlı Al-Sat Sinyal İndikatörü11 oscillators and 15 moving average tracking generates Buy-Sell signals based on 6 or more Oscillator movements, and also generates Buy-Sell signals based on 8 or more Moving Average movements. In summary, you can see the Buy-Sell conditions in the table.
PCA Regime-Adjusted MomentumSummary
The PCA Regime-Adjusted Momentum (PCA-RAM) is an advanced market analysis tool designed to provide nuanced insights into market momentum and structural stability. It moves beyond traditional indicators by using Principal Component Analysis (PCA) to deconstruct market data into its most essential patterns.
The indicator provides two key pieces of information:
A smoothed momentum signal based on the market's dominant underlying trend.
A dynamic regime filter that gauges the stability and clarity of the market's structure, advising you when to trust or fade the momentum signals.
This allows traders to not only identify potential shifts in momentum but also to understand the context and confidence behind those signals.
Core Concepts & Methodology
The strength of this indicator lies in its sound, data-driven methodology.
1. Principal Component Analysis (PCA)
At its core, the indicator analyzes a rolling window (default 50 periods) of standardized market data (Open, High, Low, Close, and Volume). PCA is a powerful statistical technique that distills this complex, 5-dimensional data into its fundamental, uncorrelated components of variance. We focus on the First Principal Component (PC1), which represents the single most dominant pattern or "theme" driving the market's behavior in the lookback window.
2. The Momentum Signal
Instead of just looking at price, we project the current market data onto this dominant underlying pattern (PC1). This gives us a raw "projection score" that measures how strongly the current bar aligns with the historically dominant market structure. This raw score is then smoothed using two an exponential moving averages (a fast and a slow line) to create a clear, actionable momentum signal, similar in concept to a MACD.
3. The Dynamic Regime Filter
This is arguably the indicator's most powerful feature. It answers the question: "How clear is the current market picture?"
It calculates the Market Concentration Ratio, which is the percentage of total market variance explained by PC1 alone.
A high ratio indicates that the market is moving in a simple, one-dimensional way (e.g., a clear, strong trend).
A low ratio indicates the market is complex, multi-dimensional, and choppy, with no single dominant theme.
Crucially, this filter is dynamic. It compares the current concentration ratio to its own recent average, allowing it to adapt to any asset or timeframe. It automatically learns what "normal" and "choppy" look like for the specific chart you are viewing.
How to Interpret the Indicator
The indicator is displayed in a separate pane with two key visual elements:
The Momentum Lines (White & Gold)
White Line: The "Fast Line," representing the current momentum.
Gold Line: The "Slow Line," acting as the trend confirmation.
Bullish Signal: A crossover of the White Line above the Gold Line suggests a shift to positive momentum.
Bearish Signal: A crossover of the White Line below the Gold Line suggests a shift to negative momentum.
The Regime Filter (Purple & Dark Red Background)
This is your confidence gauge.
Navy Blue Background (High Concentration): The market structure is stable, simple, and trending. Momentum signals are more reliable and should be given higher priority.
Dark Red Background (Low Concentration): The market structure is complex, choppy, or directionless. Momentum signals are unreliable and prone to failure or "whipsaws." This is a signal to be cautious, tighten stops, or potentially stay out of the market.
Potential Trading Strategies
This tool is versatile and can be used in several ways:
1. Primary Signal Strategy
Condition: Wait for the background to turn Purple, confirming a stable, high-confidence regime.
Entry: Take the next crossover signal from the momentum lines (White over Gold for long, White under Gold for short).
Exit/Filter: Consider exiting positions or ignoring new signals when the background turns Navy.
2. As a Confirmation or Filter for Your Existing Strategy
Do you have a trend-following system? Only enable its long and short signals when the PCA-RAM background is Purple.
Do you have a range-trading or mean-reversion system? It might be most effective when the PCA-RAM background is Navy, indicating a lack of a clear trend.
3. Advanced Divergence Analysis
Look for classic divergences between price and the momentum lines. For example, if the price is making a new high, but the Gold Line is making a lower high, it may indicate underlying weakness in the trend, even on a Purple background. This divergence signal is more powerful because it shows that the new price high is not being confirmed by the market's dominant underlying pattern.
Digital RSI Display (Bottom-Right)Digitial display bottom right of chart, displays RSI live during market hours.
Over 70 RSI turns red to indicate overbought
Under 30 RSI turns green to indicate oversold
SImple & easy.
AKC Strategy with MACD + RSI + ATR Filters [FAILED]This strategy is built around a mean-reversion concept using Higher Timeframe (HTF) Keltner Channels overlaid on a 5-minute chart.
Entry Conditions:
• Long when price pierces the lower HTF band
• Short when price pierces the upper HTF band
• Confirmed by:
• MACD histogram direction
• RSI above 50 (for longs) / below 50 (for shorts)
• ATR must be above its 20-bar average (filters low-volatility chop)
Exit Conditions:
• Stop-loss: 1%
• Take-profit: 2% (fixed R:R of 1:2)
Customization:
• Timeframe input for Keltner calculation (default: 4H)
• Adjustable filter thresholds and SL/TP levels
Backtest Result (In-Sample: Feb–Apr 2023):
• Total Trades: 138
• Win Rate: ~27%
• Profit Factor: ~0.85
• Still underperforming overall but built as a modular base for refinement.
Indexed MACD Oscillator🔵 Indexed MACD Oscillator — A Fresh Perspective on Momentum
This script transforms the traditional MACD histogram into a normalized oscillator scaled between 0 and 100, offering a unique and intuitive view of momentum.
📌 How it works:
Calculates the standard MACD histogram (12, 26, 9).
Normalizes the histogram over the last 100 bars to fit a fixed 0–100 range.
This allows for easier visual comparisons of MACD strength across different timeframes or assets.
✅ Key Benefits:
Detects relative momentum strength without being skewed by absolute price changes.
Useful for spotting divergence, overbought/oversold regions, or enhanced signal clarity.
Cleaner display for multi-chart setups or cross-asset analysis.
🛠️ Customization Ideas:
Combine with RSI, trend filters, or volume for confirmation.
Add colored zones to highlight potential reversal areas.
Session-Based Sentiment Oscillator [TradeDots]Track, analyze, and monitor market sentiment across global trading sessions with this advanced multi-session sentiment analysis tool. This script provides session-specific sentiment readings for Asian (Tokyo), European (London), and US (New York) markets, combining price action, volume analysis, and volatility factors into a comprehensive sentiment oscillator. It is an original indicator designed to help traders understand regional market psychology and capitalize on cross-session sentiment shifts directly on TradingView.
📝 HOW IT WORKS
1. Multi-Component Sentiment Engine
Price Action Momentum : Calculates normalized price movement relative to recent trading ranges, providing directional sentiment readings.
Volume-Weighted Analysis : When volume data is available, incorporates volume flow direction to validate price-based sentiment signals.
Volatility-Adjusted Factors : Accounts for changing market volatility conditions by comparing current ATR against historical averages.
Weighted Combination : Merges all components using optimized weightings (Price: 1.0, Volume: 0.3, Volatility: 0.2) for balanced sentiment readings.
2. Session-Segregated Tracking
Automatic Session Detection : Precisely identifies active trading sessions based on user-configured time parameters.
Independent Calculations : Maintains separate sentiment accumulation for each major session, updated only during respective active hours.
Historical Preservation : Stores session-specific sentiment values even when sessions are closed, enabling cross-session comparison.
Real-Time Updates : Continuously processes sentiment during active sessions while preserving inactive session data.
3. Cross-Session Transition Analysis
Sentiment Differential Detection : Monitors sentiment changes when transitioning between trading sessions.
Configurable Thresholds : Generates signals only when sentiment shifts exceed user-defined minimum thresholds.
Directional Signals : Provides distinct bullish and bearish transition alerts with visual markers.
Smart Filtering : Applies smoothing algorithms to reduce false signals from minor sentiment variations.
⚙️ KEY FEATURES
1. Session-Specific Dashboard
Real-Time Status Display : Shows current session activity (ACTIVE/CLOSED) for all three major sessions.
Sentiment Percentages : Displays precise sentiment readings as percentages for easy interpretation.
Strength Classification : Automatically categorizes sentiment as HIGH (>50%), MEDIUM (20-50%), or LOW (<20%).
Customizable Positioning : Place dashboard in any corner with adjustable size options.
2. Advanced Signal Generation
Transition Alerts : Triangle markers indicate significant sentiment shifts between sessions.
Extreme Conditions : Diamond markers highlight overbought/oversold threshold breaches.
Configurable Sensitivity : Adjust signal thresholds from 0.05 to 0.50 based on trading style.
Alert Integration : Built-in TradingView alert conditions for automated notifications.
3. Forex Currency Strength Analysis
Base/Quote Decomposition : For forex pairs, separates sentiment into individual currency strength components.
Major Currency Support : Analyzes USD, EUR, GBP, JPY, CHF, CAD, AUD, NZD strength relationships.
Relative Strength Display : Shows which currency is driving pair movement during active sessions.
4. Visual Enhancement System
Session Background Colors : Distinct background shading for each active trading session.
Overbought/Oversold Zones : Configurable extreme sentiment level visualization with colored zones.
Multi-Timeframe Compatibility : Works across all timeframes while maintaining session accuracy.
Customizable Color Schemes : Full color customization for dashboard, signals, and plot elements.
🚀 HOW TO USE IT
1. Add the Script
Search for "Session-Based Sentiment Oscillator " in the Indicators tab or manually add it to your chart. The indicator will appear in a separate pane below your main chart.
2. Configure Session Times
Asian Session : Set Tokyo market hours (default: 00:00-09:00) based on your chart timezone.
European Session : Configure London market hours (default: 07:00-16:00) for European analysis.
US Session : Define New York market hours (default: 13:00-22:00) for American markets.
Timezone Adjustment : Ensure session times match your broker's specifications and account for daylight saving changes.
3. Optimize Analysis Parameters
Sentiment Period : Choose 5-50 bars (default: 14) for sentiment calculation lookback period.
Smoothing Settings : Select 1-10 bars smoothing (default: 3) with SMA, EMA, or RMA options.
Component Selection : Enable/disable volume analysis, price action, and volatility factors based on available data.
Signal Sensitivity : Adjust threshold from 0.05-0.50 (default: 0.15) for transition signal generation.
4. Interpret Readings and Signals
Positive Values : Indicate bullish sentiment for the active session.
Negative Values : Suggest bearish sentiment conditions.
Dashboard Status : Monitor which session is currently active and their respective sentiment strengths.
Transition Signals : Watch for triangle markers indicating significant cross-session sentiment changes.
Extreme Alerts : Note diamond markers when sentiment reaches overbought (>70%) or oversold (<-70%) levels.
5. Set Up Alerts
Configure TradingView alerts for:
- Bullish session transitions
- Bearish session transitions
- Overbought condition alerts
- Oversold condition alerts
❗️LIMITATIONS
1. Data Dependency
Volume Requirements : Volume-based analysis only functions when volume data is provided by your broker. Many forex brokers do not supply reliable volume data.
Price Action Focus : In absence of volume data, sentiment calculations rely primarily on price movement and volatility factors.
2. Session Time Sensitivity
Manual Adjustment Required : Session times must be manually updated for daylight saving time changes.
Broker Variations : Different brokers may have slightly different session definitions requiring time parameter adjustments.
3. Ranging Market Limitations
Trend Bias : Sentiment calculations may be less reliable during extended sideways or low-volatility market conditions.
Lag Consideration : As with all sentiment indicators, readings may lag during rapid market transitions.
4. Regional Market Focus
Major Session Coverage : Designed primarily for major global sessions; may not capture sentiment from smaller regional markets.
Weekend Gaps : Does not account for weekend gap effects on sentiment calculations.
⚠️ RISK DISCLAIMER
Trading and investing carry significant risk and can result in financial loss. The "Session-Based Sentiment Oscillator " is provided for informational and educational purposes only. It does not constitute financial advice.
- Always conduct your own research and analysis
- Use proper risk management and position sizing in all trades
- Past sentiment patterns do not guarantee future market behavior
- Combine this indicator with other technical and fundamental analysis tools
- Consider overall market context and your personal risk tolerance
This script is an original creation by TradeDots, published under the Mozilla Public License 2.0.
Session-based sentiment analysis should be used as part of a comprehensive trading strategy. No single indicator can predict market movements with certainty. Exercise proper risk management and maintain realistic expectations about indicator performance across varying market conditions.
RSI Multi-TF TabRSI Multi-Timeframe Table 📊
A tool for multi-timeframe RSI analysis with visual overbought/oversold level highlighting.
Description
This indicator calculates the Relative Strength Index (RSI) for the current chart and displays RSI values across five additional timeframes (15m, 1h, 4h, 1d, 1w) in a dynamic table. The color-coded system simplifies identifying overbought (>70), oversold (<30), and neutral zones. Visual signals on the chart enhance analysis for the current timeframe.
Key Features
✅ Multi-Timeframe Analysis :
Track RSI across 15m, 1h, 4h, 1d, and 1w in a compact table.
Color-coded alerts:
🔴 Red — Overbought (potential pullback),
🔵 Blue — Oversold (potential rebound),
🟡 Yellow — Neutral zone.
✅ Visual Signals :
Background shading for oversold/overbought zones on the main chart.
Horizontal lines at 30 and 70 levels for reference.
✅ Customizable Settings :
Adjust RSI length (default: 14), source (close, open, high, etc.), and threshold levels.
How to Use
Table Analysis :
Compare RSI values across timeframes to spot divergences (e.g., overbought on 15m vs. oversold on D).
Use colors for quick decisions.
Chart Signals :
Blue background suggests bullish potential (oversold), red hints at bearish pressure (overbought).
Always confirm with other tools (volume, trends, or candlestick patterns).
Examples :
RSI(1h) > 70 while RSI(4h) < 30 → Possible reversal upward.
Sustained RSI(1d) above 50 may indicate a bullish trend.
Settings
RSI Length : Period for RSI calculation (default: 14).
RSI Source : Data source (close, open, high, low, hl2, hlc3, ohlc4).
Overbought/Oversold Levels : Thresholds for alerts (default: 70/30).
Important Notes
No direct trading signals : Use this as an analytical tool, not a standalone strategy.
Test strategies historically and consider market context before trading.
Strategy with DI+/DI-, ADX, RSI, MACD, EMA + Time Stop [FAILED]I built this strategy combining trend strength (ADX, DI+/DI-), momentum (MACD, RSI), candle filters, and EMA direction with a time-based stop and fixed SL/TP.
Backtested on BTCUSDT (5-min) from Jan–Apr 2023 using TradingView Premium’s deep data.
🟥 Results:
• 5 trades, 0 wins
• -14.45% total P&L
• All trades hit stop-loss (1.5%)
• Profit factor: 0.00
Despite logical layering, the entry timing didn’t capture profitable moves. Possibly overfiltered or too delayed.
💡 Sharing this for transparency and learning. Not every test wins — but every test teaches. On to the next.
QQQ Strategy v2 ESL | easy-peasy-x This is a strategy optimized for QQQ (and SPY) for the 1H timeframe. It significantly outperforms passive buy-and-hold approach. With settings adjustments, it can be used on various assets like stocks and cryptos and various timeframes, although the default out of the box settings favor QQQ 1H.
The strategy uses various triggers to take both long and short trades. These can be adjusted in settings. If you try a different asset, see what combination of triggers works best for you.
Some of the triggers employ LuxAlgo's Ultimate RSI - shoutout to him for great script, check it out here .
Other triggers are based on custom signed standard deviation - basically the idea is to trade Bollinger Bands expansions (long to the upside, short to the downside) and fade or stay out of contractions.
There are three key moving averages in the strategy - LONG MA, SHORT MA, BASIC MA. Long and Short MAs are guides to eyes on the chart and also act as possible trend filters (adjustable in settings). Basic MA acts as guide to eye and a possible trade trigger (adjustable in settings).
There are a few trend filters the strategy can use - moving average, signed standard deviation, ultimate RSI or none. The filters act as an additional condition on triggers, making the strategy take trades only if both triggers and trend filter allows. That way one can filter out trades with unfavorable risk/reward (for instance, don't long if price is under the MA200). Different trade filters can be used for long and short trades.
The strategy employs various stop loss types, the default of which is a trailing %-based stop loss type. ATR-based stop loss is also available. The default 1.5% trailing stop loss is suitable for leveraged trading.
Lastly, the strategy can trigger take profit orders if certain conditions are met, adjustable in settings. Also, it can hold onto winning trades and exit only after stop out (in which case, consecutive triggers to take other positions will be ignored until stop out).
Let me know if you like it and if you use it, what kind of tweaks would you like to see.
With kind regards,
easy-peasy-x
Mitsos4 RSI + BB (EMA) + Dispersion (2.0) + TrendlinesThis custom-built TradingView indicator combines the power of the Relative Strength Index (RSI), Bollinger Bands (BB) on the RSI using an EMA basis, and a dispersion zone to help traders identify overbought/oversold conditions with enhanced visual cues and alert capabilities.
🧩 Core Components:
RSI (Relative Strength Index):
Calculates the RSI of a selected source (default: close price) to identify potential trend reversals and strength levels.
Bollinger Bands on RSI (EMA-based):
Uses an Exponential Moving Average (EMA) on the RSI to create upper and lower bands based on standard deviation (Stdev). These bands visually define dynamic overbought and oversold zones.
Dispersion Zone:
A buffer area around the RSI moving average band, defined by a user-controlled Dispersion factor. It adds a tighter sensitivity zone within the Bollinger Bands for more precise alerts.
🎨 Visual Enhancements:
RSI line changes color dynamically:
🟢 Green when RSI exceeds the dispersion upper zone (potential bullish signal)
🔴 Red when RSI falls below the dispersion lower zone (potential bearish signal)
🟡 Yellow when RSI is within the dispersion zone (neutral)
Horizontal trendlines at key RSI levels:
40 (Green dotted line)
50 (Yellow dotted line)
60 (Red dotted line)
These serve as optional confluence zones for RSI-based strategies.
Standard RSI zones (70 and 30) are shown with light gray dotted lines and a soft background fill.
🔔 Alerts:
RSI Cross Above Dispersion Area: Triggers when RSI crosses above the upper dispersion boundary.
RSI Cross Below Dispersion Area: Triggers when RSI crosses below the lower dispersion boundary.
⚙️ User-Configurable Settings:
Source (default: close)
RSI Period
Basis Period for EMA (used in BB calculation)
Standard Deviation Multiplier
Dispersion Sensitivity
✅ Use Cases:
Identifying early trend reversals or breakouts based on RSI strength beyond expected dispersion zones.
Filtering RSI signals using volatility-adjusted boundaries instead of static levels.
Combining visual levels (40/50/60) with dispersion crossovers for layered confirmations.
MACD + RSI + EMA + BB + ATR Day Trading StrategyEntry Conditions and Signals
The strategy implements a multi-layered filtering approach to entry conditions, requiring alignment across technical indicators, timeframes, and market conditions .
Long Entry Requirements
Trend Filter: Fast EMA (9) must be above Slow EMA (21), price must be above Fast EMA, and higher timeframe must confirm uptrend
MACD Signal: MACD line crosses above signal line, indicating increasing bullish momentum
RSI Condition: RSI below 70 (not overbought) but above 40 (showing momentum)
Volume & Volatility: Current volume exceeds 1.2x 20-period average and ATR shows sufficient market movement
Time Filter: Trading occurs during optimal hours (9:30-11:30 AM ET) when market volatility is typically highest
Exit Strategies
The strategy employs multiple exit mechanisms to adapt to changing market conditions and protect profits :
Stop Loss Management
Initial Stop: Placed at 2.0x ATR from entry price, adapting to current market volatility
Trailing Stop: 1.5x ATR trailing stop that moves up (for longs) or down (for shorts) as price moves favorably
Time-Based Exits: All positions closed by end of trading day (4:00 PM ET) to avoid overnight risk
Best Practices for Implementation
Settings
Chart Setup: 5-minute timeframe for execution with 15-minute chart for trend confirmation
Session Times: Focus on 9:30-11:30 AM ET trading for highest volatility and opportunity
Supply In Profit Z-ScoreZ-score of BTC Supply in Profit.
Supply in Profit is an On-Chain BTC indicator that shows the percentage of BTC in profit.
In this indicator you can choose to use a Z-Score or not.
Mitsos4 RSI + BB + Dispersion + Trendlines + VIX Fix Mitsos4 RSI + BB + Dispersion + Trendlines + VIX Fix
This powerful custom indicator combines two analytical tools into one view:
RSI-based Bollinger Bands with Dispersion and the Vix Fix volatility spike detector.
It is designed for traders who want early volatility signals and precision RSI insights, all in a single pane.
🧩 What's Included:
✅ 1. RSI + BB (EMA) + Dispersion
RSI-Based Bollinger Bands: Tracks the RSI with Bollinger Bands using an EMA as the basis.
Dispersion Zone: A buffer zone around the moving average band for more sensitive overbought/oversold detection.
Dynamic RSI Coloring:
🟢 Green: RSI breaks above the dispersion zone.
🔴 Red: RSI breaks below the dispersion zone.
🟡 Yellow: RSI inside the zone (neutral).
Trendlines at RSI levels: 40 (green), 50 (yellow), 60 (red).
Alerts when RSI crosses dispersion zones.
✅ 2. CM_Williams_Vix_Fix
Designed to simulate VIX-like volatility spikes on non-VIX instruments.
Detects potential market bottoms by measuring price deviation from recent highs.
Includes:
Bollinger Band range on WVF.
Percentile high/low zones to detect significant volatility moves.
Histogram plot of WVF for quick visual alerts.
Color-coded spikes (green when above upper thresholds).
⚙️ User Controls:
Adjustable RSI, Bollinger Band, and dispersion settings.
Toggle options for:
Viewing high/low VIX percentiles.
Showing standard deviation bands for WVF.
Custom trendline display levels at RSI key areas.
📌 Best Use Cases:
Detect early market reversals and volatility spikes.
Combine RSI strength with volatility-based bottom signals.
Layer dispersion-based logic on top of classic RSI strategies.
CVDD Z-ScoreCVDD stands for Cumulative Value Coin Days Destroyed.
Coin Days Destroyed is a term used for bitcoin to identify a value of sorts to UTXO’s (unspent transaction outputs). You can learn more about UTXO’s here. They can be thought of as coins moving between wallets.
int this script you have the option to change the Z-Score length.
MACD + RSIThis strategy combines the MACD (12, 26, 9) and Slow Stochastic (14, 3, 3) indicators to capture trend-following opportunities on Tesla's 5-minute chart. It is designed to perform best during trending market conditions, where momentum confirmation improves trade precision.
Buy signals occur when MACD crosses above its signal line and the Stochastic %K crosses above %D from below the 20 level. Sell/exit signals trigger when either MACD crosses below its signal line or Stochastic crosses down from above 80.
**Backtest Results (Tesla, 5-min chart):**
- Total P&L: +$224,725
- Win Rate: 50.00% (29 out of 58 trades)
- Profit Factor: 1.86
- Max Drawdown: $60,808.48 (4.81%)
- Time Frame: Intraday (5-min), Strategy Period ~60 trades
This script is most effective during clear upward or downward momentum phases. For optimal use, avoid ranging/choppy market conditions.
Super Choppy IndicatorProfessional Publication Description:
Super Choppy Indicator is an advanced market condition analyzer that combines traditional choppiness measurement with machine learning-inspired adaptive algorithms to provide superior trend vs. consolidation detection compared to standard indicators like ADX.
🌟 Key Features:
🧠 Machine Learning-Enhanced Analysis
Adaptive weight system that learns from prediction errors over time
Multi-feature analysis including volatility clustering, fractal energy, and momentum
Normalized feature engineering with intelligent smoothing to reduce noise
Conservative learning mechanism that improves accuracy while avoiding overfitting
📊 Advanced Fractal Analysis
Dual-period fractal detection comparing short-term (5-bar) vs long-term (18-bar) patterns
Fractal energy calculation measuring price movement efficiency across timeframes
Enhanced range efficiency analysis with volatility-adjusted components
🎯 Balanced Signal Generation
Scale from 0-100: 0 = strongest trend, 100 = maximum choppiness
Configurable thresholds (default: 60 for choppy, 40 for trending)
Trend confirmation requirements to eliminate false signals
Predictive arrows that anticipate market condition changes before they occur
⚙️ Intelligent Noise Filtering
Adjustable noise filter strength (1.0-5.0) for different market conditions
EMA smoothing applied to volatile components
Trend stability measurement to validate signal quality
Conservative learning that only adapts from significant, confirmed errors
📈 How It Works:
The indicator employs a sophisticated four-component calculation:
Traditional Choppiness (40%): Enhanced Choppiness Index with noise filtering
ML Prediction (35%): Six-feature machine learning model with adaptive weights
Fractal Energy (15%): Difference between short and long-term fractal patterns
Volatility Component (10%): Clustering analysis of market volatility
Unlike static indicators, this system continuously adapts its calculation methodology based on real-time market feedback, making it more responsive to changing conditions while maintaining stability through intelligent smoothing.
🔧 Customizable Parameters:
Fractal Periods: Short (3-15) and Long (12-30) period analysis
Volatility Period: ATR calculation length (8-20 bars)
ML Learning Period: Historical data for weight adaptation (25-80 bars)
Adaptation Rate: Learning speed control (0.01-0.1)
Noise Filter: Smoothing intensity (1.0-5.0)
Prediction Confidence: Signal threshold (0.5-0.85)
Trend Confirmation: Multi-bar validation (2-5 bars)
📊 Visual Elements:
Color-Coded Main Line: Red (choppy), Green (trending), Orange (transitional)
Threshold Lines: Clear visual boundaries at 60 (choppy) and 40 (trending)
Prediction Arrows: Forward-looking signals with confidence validation
Background Zones: Subtle highlighting of market state transitions
Information Table: Real-time metrics including confidence, stability, and ML weights
🎯 Best Use Cases:
Strategy Selection: Choose trend-following vs. mean-reversion strategies
Risk Management: Adjust position sizing based on market conditions
Entry Timing: Wait for trending conditions before entering directional trades
Exit Signals: Reduce exposure when markets turn choppy
Multi-Timeframe Analysis: Combine with higher timeframe SCI for confluence
⚡ Advantages Over Traditional Indicators:
Predictive vs. Reactive: Anticipates changes rather than confirming them
Adaptive Learning: Improves accuracy over time through machine learning
Noise Reduction: Advanced filtering eliminates false signals
Multi-Dimensional: Considers volatility, fractals, and momentum simultaneously
Non-Repainting: All signals use confirmed historical data only
📋 Trading Guidelines:
Values 0-40: Strong trending conditions - favor directional strategies
Values 40-60: Transitional phase - exercise caution, wait for confirmation
Values 60-100: Choppy conditions - favor range-bound or mean-reversion strategies
Prediction Arrows: Early warning system for upcoming condition changes
Confidence >70%: High-probability signals worth acting upon
NUPL Z-ScoreThis indicator is derived from Market Value and Realized Value, which can be defined as:
Market Value: The current price of Bitcoin multiplied by the number of coins in circulation. This is like market cap in traditional markets i.e. share price multiplied by number of shares.
Realized Value: Rather than taking the current price of Bitcoin, Realized Value takes the price of each Bitcoin when it was last moved i.e. the last time it was sent from one wallet to another wallet. It then adds up all those individual prices and takes an average of them. It then multiplies that average price by the total number of coins in circulation.
By subtracting Realized Value from Market Value we calculate Unrealized Profit/Loss.
Unrealized Profit/Loss estimates the total paper profits/losses in Bitcoin held by investors. This is interesting to know but of greater value is identifying how this changes relatively over time.
To do this we can divide Unrealized Profit/Loss by Market Cap. This creates Net Unrealized Profit/Loss, sometimes referred to as NUPL, which is very useful to track investor sentiment over time for Bitcoin.
Relative Unrealised Profit/Loss is another name used for this analysis.