Indicatori e strategie
Momentum SNR VIP [3 TP + Max 50 Pip SL]//@version=6
indicator("Momentum SNR VIP ", overlay=true)
// === Settings ===
pip = input.float(0.0001, "Pip Size", step=0.0001)
sl_pip = 50 * pip
tp1_pip = 40 * pip
tp2_pip = 70 * pip
tp3_pip = 100 * pip
lookback = input.int(20, "Lookback for S/R", minval=5)
// === SNR ===
pivotHigh = ta.pivothigh(high, lookback, lookback)
pivotLow = ta.pivotlow(low, lookback, lookback)
supportZone = not na(pivotLow)
resistanceZone = not na(pivotHigh)
plotshape(supportZone, title="Support", location=location.belowbar, color=color.blue, style=shape.triangleup, size=size.tiny)
plotshape(resistanceZone, title="Resistance", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)
// === Price Action ===
bullishEngulfing = close < open and close > open and close > open and open <= close
bearishEngulfing = close > open and close < open and close < open and open >= close
bullishPinBar = close < open and (low - math.min(open, close)) > 1.5 * math.abs(close - open)
bearishPinBar = close > open and (high - math.max(open, close)) > 1.5 * math.abs(close - open)
buySignal = supportZone and (bullishEngulfing or bullishPinBar)
sellSignal = resistanceZone and (bearishEngulfing or bearishPinBar)
// === SL & TP ===
rawBuySL = low - 10 * pip
buySL = math.max(close - sl_pip, rawBuySL)
buyTP1 = close + tp1_pip
buyTP2 = close + tp2_pip
buyTP3 = close + tp3_pip
rawSellSL = high + 10 * pip
sellSL = math.min(close + sl_pip, rawSellSL)
sellTP1 = close - tp1_pip
sellTP2 = close - tp2_pip
sellTP3 = close - tp3_pip
// === Plot Buy/Sell Signal
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// === Plot SL & TP lines
plot(buySignal ? buySL : na, title="Buy SL", color=color.red, style=plot.style_linebr, linewidth=1)
plot(buySignal ? buyTP1 : na, title="Buy TP1", color=color.green, style=plot.style_linebr, linewidth=1)
plot(buySignal ? buyTP2 : na, title="Buy TP2", color=color.green, style=plot.style_linebr, linewidth=1)
plot(buySignal ? buyTP3 : na, title="Buy TP3", color=color.green, style=plot.style_linebr, linewidth=1)
plot(sellSignal ? sellSL : na, title="Sell SL", color=color.red, style=plot.style_linebr, linewidth=1)
plot(sellSignal ? sellTP1 : na, title="Sell TP1", color=color.green, style=plot.style_linebr, linewidth=1)
plot(sellSignal ? sellTP2 : na, title="Sell TP2", color=color.green, style=plot.style_linebr, linewidth=1)
plot(sellSignal ? sellTP3 : na, title="Sell TP3", color=color.green, style=plot.style_linebr, linewidth=1)
// === Labels
if buySignal
label.new(x=bar_index, y=buySL, text="SL : " + str.tostring(buySL, "#.0000"), style=label.style_label_down, color=color.red, textcolor=color.white)
label.new(x=bar_index, y=buyTP1, text="TP1 : " + str.tostring(buyTP1, "#.0000"), style=label.style_label_up, color=color.green, textcolor=color.white)
label.new(x=bar_index, y=buyTP2, text="TP2 : " + str.tostring(buyTP2, "#.0000"), style=label.style_label_up, color=color.green, textcolor=color.white)
label.new(x=bar_index, y=buyTP3, text="TP3 : " + str.tostring(buyTP3, "#.0000"), style=label.style_label_up, color=color.green, textcolor=color.white)
if sellSignal
label.new(x=bar_index, y=sellSL, text="SL : " + str.tostring(sellSL, "#.0000"), style=label.style_label_up, color=color.red, textcolor=color.white)
label.new(x=bar_index, y=sellTP1, text="TP1 : " + str.tostring(sellTP1, "#.0000"), style=label.style_label_down, color=color.green, textcolor=color.white)
label.new(x=bar_index, y=sellTP2, text="TP2 : " + str.tostring(sellTP2, "#.0000"), style=label.style_label_down, color=color.green, textcolor=color.white)
label.new(x=bar_index, y=sellTP3, text="TP3 : " + str.tostring(sellTP3, "#.0000"), style=label.style_label_down, color=color.green, textcolor=color.white)
// === Alerts
alertcondition(buySignal, title="Buy Alert", message="🟢 BUY at Support Zone + Price Action")
alertcondition(sellSignal, title="Sell Alert", message="🟡 SELL at Resistance Zone + Price Action")
Time Zone (with weekends)//@version=5
indicator("Time Zone (with weekends)", overlay=true)
// Задаём сессию — например, с 01:00 до 13:00 UTC
sessionTime = input.session("0100-1300", "Временной промежуток")
zoneColor = input.color(color.new(color.blue, 85), "Цвет зоны")
// Проверка, попадает ли текущий бар во временной промежуток
inTimeZone = time(timeframe.period, sessionTime)
// Закрашиваем фон
bgcolor(inTimeZone ? zoneColor : na)
BTC 现货与期货溢价指数█ Overview / 核心理念
This indicator measures the price difference between the Spot and Futures markets to reveal the true driver of market momentum.
本指标通过衡量现货与期货市场的价格差异,旨在揭示市场动能的真实驱动力。
It helps you answer a key question: Is the current trend driven by solid institutional spot buying or by speculative sentiment in the futures market?
它帮助您回答一个关键问题:当前趋势是由坚实的机构现货买盘驱动,还是由期货市场的投机情绪主导?
█ Core Logic & Calculation / 核心计算逻辑
The core logic is simple yet powerful: Premium = Spot Price - Futures Price.
其核心逻辑简单而强大:溢价 = 现货价格 - 期货价格。
Positive Value (Green Bars): "Spot Premium"
正值 (绿色柱): “现货溢价”
This means the spot price is higher than the futures price. It's a strong bullish signal, suggesting significant spot buying pressure, likely from institutions.
这意味着现货价格高于期货价格。这是一个强烈的看涨信号,通常意味着存在巨大的现货买盘压力,可能来自机构。
Negative Value (Red Bars): "Futures Premium"
负值 (红色柱): “期货溢价”
This means the futures price is higher than the spot price. It indicates that bullish sentiment is more concentrated in the futures market, or that there is selling pressure in the spot market.
这意味着期货价格高于现货价格。这表明看涨情绪更多地集中在期货市场,或现货市场存在抛售压力。
█ How to Read the Chart / 如何解读图表
Premium Histogram / 溢价柱状图
The height of the bars represents the magnitude of the price difference. Taller bars indicate a greater divergence between the two markets and more extreme sentiment.
柱体的高度代表了价格差异的大小。柱体越高,意味着两个市场之间的分歧越大,情绪越极端。
Zero Line / 零轴
This is the watershed between spot-led and futures-led dominance.
这是现货主导与期货主导的分水岭。
Info Panel / 信息面板
A real-time display in the top-right corner shows the current Spot Price, Futures Price, and the precise Premium value.
位于右上角的信息面板,实时显示当前的现货价格、期货价格以及精确的溢价数值。
█ Trading Strategies & Advanced Interpretation / 交易策略与高级解读
The essence of this indicator lies in analyzing the synergy and divergence between price action and premium changes to identify the dominant market force.
本指标的精髓在于结合价格行为与溢价变化,判断出当前主导市场是现货还是期货,从而进行同步或背离分析。
█ Alert System / 警报系统
The indicator includes two built-in alerts based on Bollinger Bands to catch extreme sentiment.
本指标包含两个基于布林带的内置警报,用以捕捉极端情绪。
Spot Premium Too High (Cross Up):
现货溢价过高 (向上突破):
Triggers when the green premium bar breaks above the upper Bollinger Band. It signals that spot buying has become excessively "euphoric" and may be due for a short-term cooldown.
当绿色溢价柱向上突破布林带上轨时触发。这标志着现货买盘已进入极度的“狂热”状态,短期内可能面临回调。
Futures Premium Too High / Spot Selling Pressure (Cross Down):
期货溢价过高 / 现货抛压 (向下突破):
Triggers when the premium bar breaks below the lower Bollinger Band (deeply negative). It signals intense spot selling pressure or panic, confirming strong bearish sentiment.
当溢价柱向下突破布林带下轨(负值极大)时触发。这标志着强烈的现货抛压或市场恐慌,是看跌情绪强烈的确认信号。
█ Disclaimer / 免责声明
This tool is based on the theory that the spot market has a dominant influence on major trends. Its effectiveness depends on this condition holding true.
本工具的理论基础是“现货市场对主要趋势具有主导影响力”。其有效性取决于该条件的成立。
This indicator is for educational and research purposes only. It does not constitute financial advice. Please use it in conjunction with your own trading system and risk management.
本指标仅用于教育和研究目的,不构成任何财务建议。请结合您自己的交易系统和风险管理进行使用。
Author ID:We1h0.eth
Author X:https://x.com/we1h0
H BollingerBollinger Bands are a widely used technical analysis indicator that helps spot relative price highs and lows. The tool comprises three lines: a central band representing the 20-period simple moving average (SMA), and upper and lower bands usually placed two standard deviations above and below the SMA. These bands adjust with market volatility, offering insights into price fluctuations and trading conditions.
How this indicator works
Bollinger Bands helps traders assess price volatility and potential price reversals. They consist of three bands: the middle band, the upper band, and the lower band. Here's how Bollinger Bands work:
Middle band: This is typically a simple moving average (SMA) of the asset's price over a specified period. The most common period used is 20 days.
Upper band: This is calculated by adding a specified number of standard deviations to the middle band. The standard deviation measures the asset's price volatility. Commonly, two standard deviations are added to the middle band.
Lower band: Similar to the upper band, it is calculated by subtracting a specified number of standard deviations from the middle band.
What do Bollinger Bands tell you?
Bollinger bands primarily indicate the level of market volatility and trading opportunities. Narrow bands indicate low market volatility, while wide bands suggest high market volatility. Bollinger bands indicators can be used by traders to assess potential buy or sell signals. For instance, a sell signal may be interpreted or generated if the asset’s price moves closer or crosses the upper band, as it may indicate that the asset is overbought. Alternatively, a buy signal may be interpreted or generated if the price moves closer to the lower band, as it may signify that the asset is oversold.
However, traders should be cautious when using Bollinger Bands as standalone indicators when making trading decisions. Experienced traders refrain from confirming signals based on one indicator. Instead, they generally combine various technical indicators and fundamental analysis methods to make informed trading decisions. Basing trading decisions on only one indicator can result in misinterpretation of signals and heavy losses.
Bollinger Bands assist in identifying whether prices are relatively high or low. They are applied as a pair—upper and lower bands—alongside a moving average. However, these bands are not designed to be used in isolation. Instead, they should be used to validate signals generated by other technical indicators.
Calculation of Bollinger Band
CME Crude Oil 15-Min Multi-Unified Entry Zones (Dot Signals)//@version=6
indicator("CME Crude Oil 15-Min Multi-Unified Entry Zones (Dot Signals)", overlay=true)
// --- Input Parameters ---
emaLength = input.int(11, title="EMA Length", minval=1)
// Ichimoku Cloud Inputs (Adjusted for higher sensitivity)
conversionLineLength = input.int(7, title="Ichimoku Conversion Line Length (Sensitive)", minval=1)
baseLineLength = input.int(20, title="Ichimoku Base Line Length (Sensitive)", minval=1)
laggingSpanLength = input.int(40, title="Ichimoku Lagging Span Length (Sensitive)", minval=1)
displacement = input.int(26, title="Ichimoku Displacement", minval=1)
// MACD Inputs (Adjusted for higher sensitivity)
fastLength = input.int(9, title="MACD Fast Length (Sensitive)", minval=1)
slowLength = input.int(21, title="MACD Slow Length (Sensitive)", minval=1)
signalLength = input.int(6, title="MACD Signal Length (Sensitive)", minval=1)
// RSI Inputs
rsiLength = input.int(8, title="RSI Length", minval=1)
rsiOverbought = input.int(70, title="RSI Overbought Level", minval=50, maxval=90)
rsiOversold = input.int(30, title="RSI Oversold Level", minval=10, maxval=50)
// ADX Inputs
adxLength = input.int(14, title="ADX Length", minval=1)
adxTrendStrengthThreshold = input.int(20, title="ADX Trend Strength Threshold", minval=10, maxval=50)
// Weak Entry Threshold (50 ticks for Crude Oil, where 1 tick = $0.01)
// 50 ticks = $0.50
weakEntryTickThreshold = input.float(0.50, title="Weak Entry Threshold (in $)", minval=0.01)
// --- Indicator Calculations ---
// 1. EMA 11
ema11 = ta.ema(close, emaLength)
// 2. Ichimoku Cloud
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
tenkanSen = donchian(conversionLineLength)
kijunSen = donchian(baseLineLength)
senkouSpanA = math.avg(tenkanSen, kijunSen)
senkouSpanB = donchian(laggingSpanLength)
// Shifted for plotting (future projection)
senkouSpanA_plot = senkouSpanA
senkouSpanB_plot = senkouSpanB
// Chikou Span (lagging span, plotted 26 periods back)
chikouSpan = close
// 3. MACD
= ta.macd(close, fastLength, slowLength, signalLength)
// 4. RSI
rsi = ta.rsi(close, rsiLength)
// 5. ADX
= ta.dmi(adxLength, adxLength)
// --- Price Volume Pattern Logic ---
// Simplified volume confirmation:
isVolumeIncreasing = volume > volume
isVolumeDecreasing = volume < volume
isPriceUp = close > close
isPriceDown = close < close
bullishVolumeConfirmation = (isPriceUp and isVolumeIncreasing) or (isPriceDown and isVolumeDecreasing)
bearishVolumeConfirmation = (isPriceDown and isVolumeIncreasing) or (isPriceUp and isVolumeDecreasing)
// --- Daily Pivot Point Calculation (Critical Support/Resistance) ---
// Request daily High, Low, Close for pivot calculation
= request.security(syminfo.tickerid, "D", [high , low , close ])
// Classic Pivot Point Formula
dailyPP = (dailyHigh + dailyLow + dailyClose) / 3
dailyR1 = (2 * dailyPP) - dailyLow
dailyS1 = (2 * dailyPP) - dailyHigh
dailyR2 = dailyPP + (dailyHigh - dailyLow)
dailyS2 = dailyPP - (dailyHigh - dailyLow)
// --- Crosses and States for Unified Entry 1 (EMA & MACD) ---
// Moved ta.cross() calls outside of conditional blocks for consistent calculation.
emaGoldenCrossCondition = ta.cross(close, ema11)
emaDeathCrossCondition = ta.cross(ema11, close)
macdGoldenCrossCondition = ta.cross(macdLine, signalLine)
macdDeathCrossCondition = ta.cross(signalLine, macdLine)
emaIsBullish = close > ema11
emaIsBearish = close < ema11
macdIsBullishStrong = macdLine > signalLine and macdLine > 0
macdIsBearishStrong = macdLine < signalLine and macdLine < 0
// --- Unified Entry 1 Logic (EMA & MACD) ---
unifiedLongEntry1 = false
unifiedShortEntry1 = false
if (emaGoldenCrossCondition and macdIsBullishStrong )
unifiedLongEntry1 := true
else if (macdGoldenCrossCondition and emaIsBullish )
unifiedLongEntry1 := true
if (emaDeathCrossCondition and macdIsBearishStrong )
unifiedShortEntry1 := true
else if (macdDeathCrossCondition and emaIsBearish )
unifiedShortEntry1 := true
// --- Unified Entry 2 Logic (Ichimoku & EMA/Volume) ---
unifiedLongEntry2 = false
unifiedShortEntry2 = false
ichimokuCloudBullish = close > senkouSpanA_plot and close > senkouSpanB_plot and
senkouSpanA_plot > senkouSpanB_plot and
tenkanSen > kijunSen and
chikouSpan > close
ichimokuCloudBearish = close < senkouSpanA_plot and close < senkouSpanB_plot and
senkouSpanB_plot > senkouSpanA_plot and
tenkanSen < kijunSen and
chikouSpan < close
// Moved ta.cross() calls outside of conditional blocks for consistent calculation.
ichimokuBullishTriggerCondition = ta.cross(tenkanSen, kijunSen)
ichimokuBearishTriggerCondition = ta.cross(kijunSen, tenkanSen)
priceCrossAboveSenkouA = ta.cross(close, senkouSpanA_plot)
priceCrossBelowSenkouA = ta.cross(senkouSpanA_plot, close)
if (ichimokuBullishTriggerCondition or (priceCrossAboveSenkouA and close > senkouSpanB_plot)) and
emaIsBullish and
bullishVolumeConfirmation
unifiedLongEntry2 := true
if (ichimokuBearishTriggerCondition or (priceCrossBelowSenkouA and close < senkouSpanB_plot)) and
emaIsBearish and
bearishVolumeConfirmation
unifiedShortEntry2 := true
// --- Weak Entry Logic ---
weakLongEntry = false
weakShortEntry = false
// Function to check for weak long entry
// Checks if the distance to the nearest resistance (R1 or R2) is less than the threshold
f_isWeakLongEntry(currentPrice) =>
bool isWeak = false
// Check R1 if it's above current price and within threshold
if dailyR1 > currentPrice and (dailyR1 - currentPrice < weakEntryTickThreshold)
isWeak := true
// Check R2 if it's above current price and within threshold (only if not already weak by R1)
else if dailyR2 > currentPrice and (dailyR2 - currentPrice < weakEntryTickThreshold)
isWeak := true
isWeak
// Function to check for weak short entry
// Checks if the distance to the nearest support (S1 or S2) is less than the threshold
f_isWeakShortEntry(currentPrice) =>
bool isWeak = false
// Check S1 if it's below current price and within threshold
if dailyS1 < currentPrice and (currentPrice - dailyS1 < weakEntryTickThreshold)
isWeak := true
// Check S2 if it's below current price and within threshold (only if not already weak by S1)
else if dailyS2 < currentPrice and (currentPrice - dailyS2 < weakEntryTickThreshold)
isWeak := true
isWeak
// Apply weak entry check to Unified Entry 1
if unifiedLongEntry1 and f_isWeakLongEntry(close)
weakLongEntry := true
if unifiedShortEntry1 and f_isWeakShortEntry(close)
weakShortEntry := true
// Apply weak entry check to Unified Entry 2
if unifiedLongEntry2 and f_isWeakLongEntry(close)
weakLongEntry := true
if unifiedShortEntry2 and f_isWeakShortEntry(close)
weakShortEntry := true
// --- Enhanced Entry Conditions with RSI and ADX ---
// Removed candlestick pattern requirement.
// Only consider an entry if RSI is not overbought/oversold AND ADX indicates trend strength.
// Enhanced Long Entry Condition
enhancedLongEntry = (unifiedLongEntry1 or unifiedLongEntry2) and
(rsi < rsiOverbought) and // RSI not overbought
(adx > adxTrendStrengthThreshold) // ADX shows trend strength
// Enhanced Short Entry Condition
enhancedShortEntry = (unifiedShortEntry1 or unifiedShortEntry2) and
(rsi > rsiOversold) and // RSI not oversold
(adx > adxTrendStrengthThreshold) // ADX shows trend strength
// --- Define colors as variables for clarity and to potentially resolve parsing issues ---
// Changed named color constants to hexadecimal values
var color strongBuyDotColor = #FFD700 // Gold
var color weakBuyDotColor = #008000 // Green
var color strongSellDotColor = #FFFFFF // White
var color weakSellDotColor = #FF0000 // Red
// --- Plotting Entry Dots on Candlesticks ---
// Define conditions for plotting only on the *first* occurrence of a signal
isNewStrongBuy = enhancedLongEntry and not weakLongEntry and not (enhancedLongEntry and not weakLongEntry )
isNewWeakBuy = enhancedLongEntry and weakLongEntry and not (enhancedLongEntry and weakLongEntry )
isNewStrongSell = enhancedShortEntry and not weakShortEntry and not (enhancedShortEntry and not weakShortEntry )
isNewWeakSell = enhancedShortEntry and weakShortEntry and not (enhancedShortEntry and weakShortEntry )
// Helper functions to check candlestick type
isCurrentCandleBullish = close > open
isCurrentCandleBearish = close < open
// Strong Buy: Gold dot (only on bullish candles)
plotshape(isNewStrongBuy and isCurrentCandleBullish ? close : na, title="Strong B", location=location.absolute, color=strongBuyDotColor, style=shape.circle, size=size.tiny)
// Weak Buy: Solid Green dot (no candlestick filter for weak buys)
// Changed text to "" and style to shape.triangleup for symbol only
plotshape(isNewWeakBuy ? close : na, title="Weak B", location=location.absolute, color=weakBuyDotColor, style=shape.triangleup, size=size.tiny)
// Strong Sell: White dot (only on bearish candles)
plotshape(isNewStrongSell and isCurrentCandleBearish ? close : na, title="Strong S", location=location.absolute, color=strongSellDotColor, style=shape.circle, size=size.tiny)
// Weak Sell: Red dot (no candlestick filter for weak sells)
// Changed text to "" and style to shape.triangledown for symbol only
plotshape(isNewWeakSell ? close : na, title="Weak S", location=location.absolute, color=weakSellDotColor, style=shape.triangledown, size=size.tiny)
// --- Plotting Indicators (Optional, for visual confirmation) ---
// All indicator plots have been removed as requested.
// plot(ema11, title="EMA 11", color=emaColor)
// plot(tenkanSen, title="Tenkan-Sen", color=tenkanColor)
// plot(kijunSen, title="Kijun-Sen", color=kijunColor)
// plot(senkouSpanA_plot, title="Senkou Span A", color=senkouAColor, offset=displacement)
// plot(senkouSpanB_plot, title="Senkou Span B", color=senkouBColor, offset=displacement)
// fill(plot(senkouSpanA_plot, offset=displacement), plot(senkouSpanB_plot, offset=displacement), color=cloudFillBullishColor, title="Cloud Fill Bullish")
// fill(plot(senkouSpanA_plot, offset=displacement), plot(senkouSpanB_plot, offset=displacement), color=cloudFillBearishColor, title="Cloud Fill Bearish")
// plot(chikouSpan, title="Chikou Span", color=chikouColor, offset=-displacement)
// plot(macdLine, title="MACD Line", color=macdLineColor, display=display.pane)
// plot(signalLine, title="Signal Line", color=signalLineColor, display=display.pane)
// plot(hist, title="Histogram", color=hist >= 0 ? histGreenColor : histRedColor, style=plot.style_columns, display=display.pane)
// plot(rsi, title="RSI", color=rsiPlotColor, display=display.pane)
// hline(rsiOverbought, "RSI Overbought", color=rsiHlineRedColor, linestyle=hline.style_dashed, display=display.all)
// hline(rsiOversold, "RSI Oversold", color=rsiHlineGreenColor, linestyle=hline.style_dashed, display=display.all)
// plot(adx, title="ADX", color=adxPlotColor, display=display.pane)
// hline(adxTrendStrengthThreshold, "ADX Threshold", color=adxHlineColor, linestyle=hline.style_dashed, display=display.all)
// plot(diPlus, title="+DI", color=diPlusColor, display=display.pane)
// plot(diMinus, title="-DI", color=diMinusColor, display=display.pane)
// plot(dailyPP, title="Daily PP", color=dailyPPColor, style=plot.style_line, linewidth=1)
// plot(dailyR1, title="Daily R1", color=dailyRColor, style=plot.style_line, linewidth=1)
// plot(dailyR2, title="Daily R2", color=dailyRColor, style=plot.style_line, linewidth=1)
// plot(dailyS1, title="Daily S1", color=dailySColor, style=plot.style_line, linewidth=1)
// plot(dailyS2, title="Daily S2", color=dailySColor, style=plot.style_line, linewidth=1)
// --- Alerts (Optional) ---
alertcondition(enhancedLongEntry and not weakLongEntry, title="Strong Buy Alert", message="CME Crude Oil: Strong Buy Entry!")
alertcondition(enhancedLongEntry and weakLongEntry, title="Weak Buy Alert", message="CME Crude Oil: Weak Buy Entry Detected!")
alertcondition(enhancedShortEntry and not weakShortEntry, title="Strong Sell Alert", message="CME Crude Oil: Strong Sell Entry!")
alertcondition(enhancedShortEntry and weakShortEntry, title="Weak Sell Alert", message="CME Crude Oil: Weak Sell Entry Detected!")
EMA, DEMA (x2), SMMA (x2) Combo [V6]The averages of one EMA, two DEMA, and two SMMA are combined. parameters can be adjusted. The transaction is entered and exited according to the intersections.
Stochastic RSI (Self-Comparing Color)Stochastic RSI (Self-Comparing Color)
Color Based Coding based on High and Low close
DDOG Breakout Dashboard Proull-featured breakout dashboard that gives you visual clarity, trade confidence, and the tactical edge you love. Here’s the upgraded layout with:
🧩 Multi-pane visualizations
🔔 Global alert conditions for breakout moves
📉 Dynamic Open Interest (OI) overlays for futures tracking
🔁 Modular scripting to integrate with your existing RSI dashboards
Normalized Volume with Stripe FilterNvol with stripe function price chart ema defined. Trade the liquidity levels (trend liquidity zones indi) towards volume, unless your value says otherwise.
Frahm Factor Position Size CalculatorThe Frahm Factor Position Size Calculator is a powerful evolution of the original Frahm Factor script, leveraging its volatility analysis to dynamically adjust trading risk. This Pine Script for TradingView uses the Frahm Factor’s volatility score (1-10) to set risk percentages (1.75% to 5%) for both Margin-Based and Equity-Based position sizing. A compact table on the main chart displays Risk per Trade, Frahm Factor, and Average Candle Size, making it an essential tool for traders aligning risk with market conditions.
Calculates a volatility score (1-10) using true range percentile rank over a customizable look-back window (default 24 hours).
Dynamically sets risk percentage based on volatility:
Low volatility (score ≤ 3): 5% risk for bolder trades.
High volatility (score ≥ 8): 1.75% risk for caution.
Medium volatility (score 4-7): Smoothly interpolated (e.g., 4 → 4.3%, 5 → 3.6%).
Adjustable sensitivity via Frahm Scale Multiplier (default 9) for tailored volatility response.
Position Sizing:
Margin-Based: Risk as a percentage of total margin (e.g., $175 for 1.75% of $10,000 at high volatility).
Equity-Based: Risk as a percentage of (equity - minimum balance) (e.g., $175 for 1.75% of ($15,000 - $5,000)).
Compact 1-3 row table shows:
Risk per Trade with Frahm score (e.g., “$175.00 (Frahm: 8)”).
Frahm Factor (e.g., “Frahm Factor: 8”).
Average Candle Size (e.g., “Avg Candle: 50 t”).
Toggles to show/hide Frahm Factor and Average Candle Size rows, with no empty backgrounds.
Four sizes: XL (18x7, large text), L (13x6, normal), M (9x5, small, default), S (8x4, tiny).
Repositionable (9 positions, default: top-right).
Customizable cell color, text color, and transparency.
Set Frahm Factor:
Frahm Window (hrs): Pick how far back to measure volatility (e.g., 24 hours). Shorter for fast markets, longer for chill ones.
Frahm Scale Multiplier: Set sensitivity (1-10, default 9). Higher makes the score jumpier; lower smooths it out.
Set Margin-Based:
Total Margin: Enter your account balance (e.g., $10,000). Risk auto-adjusts via Frahm Factor.
Set Equity-Based:
Total Equity: Enter your total account balance (e.g., $15,000).
Minimum Balance: Set to the lowest your account can go before liquidation (e.g., $5,000). Risk is based on the difference, auto-adjusted by Frahm Factor.
Customize Display:
Calculation Method: Pick Margin-Based or Equity-Based.
Table Position: Choose where the table sits (e.g., top_right).
Table Size: Select XL, L, M, or S (default M, small text).
Table Cell Color: Set background color (default blue).
Table Text Color: Set text color (default white).
Table Cell Transparency: Adjust transparency (0 = solid, 100 = invisible, default 80).
Show Frahm Factor & Show Avg Candle Size: Check to show these rows, uncheck to hide (default on).
Position Size CalculatorIt calculates the risk per trade using two methods: Margin-Based (percentage of total Account Balance) or Equity-Based (percentage of Total Balance minus minimum balance). Displayed as a compact, customizable label on the main chart, it’s perfect for traders seeking quick, precise risk calculations.
Key Features
Two Calculation Options:
Margin-Based: Risk as a percentage (0-5%) of your total account balance.
Equity-Based: Risk as a percentage (0-50%) of (Total balance - Minimum balance).
Flexible Risk Input: Manually enter any risk percentage with 0.01% precision (e.g., 1.75%).
Customizable Display:
Repositionable table (9 positions, e.g., top-right, middle-center).
Four table sizes (XL, L, M, S) with text scaling (large, normal, small, tiny).
Adjustable cell color, text color, and transparency
Margin-Based Risk Calculation:
Set “Total Margin” (e.g., $10,000).
Enter “Risk Percentage (%)” (0 to 5%, e.g., 1.75%).
Equity-Based Risk Calculation:
Set “Total Equity” (e.g., $15,000).
Set “Minimum Balance” (e.g., $5,000).
Enter “Equity Risk Percentage (%)” (0 to 50%, e.g., 1.75%).
Display Settings:
Choose “Calculation Method” (Margin-Based or Equity-Based).
Select “Table Position” (e.g., top_right).
Select “Table Size” (XL, L, M, S; default M).
Customize “Table Cell Color”, “Table Text Color”, and “Table Cell Transparency”.
2 StdDev SMA + Candle Close % (Preço e Volume)(Price - (SMA20 - 2*StdDev20)) / (4*StdDev20): This indicator measures the current price's position relative to a 20-period Simple Moving Average (SMA) and its 2-standard deviation lower band. The result is normalized by 4 times the standard deviation, providing insight into how far the price is from the lower Bollinger Band, scaled by volatility. A higher value indicates the price is further above the lower band.
(Price - (SMA50 - 2*StdDev50)) / (4*StdDev50): Similar to the above, but applied to a 50-period SMA and its 2-standard deviation lower band. It helps assess the price's position relative to medium-term volatility.
(Price - (SMA200 - 2*StdDev200)) / (4*StdDev200): This applies the same logic to a 200-period SMA and its 2-standard deviation lower band. It's useful for evaluating the price's position relative to long-term volatility.
(Volume - (SMAVol200 - 2*StdDevVol200)) / (4*StdDevVol200): This indicator assesses the current volume's position relative to a 200-period Simple Moving Average of Volume and its 2-standard deviation lower band. It helps identify whether current trading volume is significantly above or below its long-term average, scaled by volume volatility.
Close Location in Range (%): This indicator shows where the closing price of the current candle falls within its high-low range, expressed as a percentage. A value of 0% means the close was at the low, 100% means the close was at the high, and 50% means the close was exactly in the middle of the candle's range. It helps visualize the strength of the close relative to the candle's total movement.
LiliALHUNTERSystemLibrary "LiliALHUNTERSystem"
HUNTER System Library - Powerful target management for Pine Script
ema_calc(len, source)
Parameters:
len (simple int)
source (float)
rma_calc(len, source)
Parameters:
len (simple int)
source (float)
supertrend_calc(length, factor)
Parameters:
length (simple int)
factor (float)
createTargets(config, state, source1A, source1B, source2A, source2B)
Parameters:
config (TargetConfig)
state (TargetState)
source1A (float)
source1B (float)
source2A (float)
source2B (float)
showDashboard(state, dashLoc, textSize)
Parameters:
state (TargetState)
dashLoc (string)
textSize (string)
TargetConfig
Fields:
enableTarget1 (series bool)
enableTarget2 (series bool)
isLong1 (series bool)
isLong2 (series bool)
target1Condition (series string)
target2Condition (series string)
target1Color (series color)
target2Color (series color)
target1Style (series string)
target2Style (series string)
distTarget1 (series float)
distTarget2 (series float)
distOptions1 (series string)
distOptions2 (series string)
showLabels (series bool)
showDash (series bool)
TargetState
Fields:
target1LineV (series line)
target1LineH (series line)
target2LineV (series line)
target2LineH (series line)
target1Lbl (series label)
target2Lbl (series label)
target1Active (series bool)
target2Active (series bool)
target1Value (series float)
target2Value (series float)
countTargets1 (series int)
countTgReached1 (series int)
countTargets2 (series int)
countTgReached2 (series int)
ema/dema_cum_stdThis indicator measures distance between moving averages by first calculating the variance of a group of moving averages the converting to standard deviation by taking the square root of the variance and then normalized by dividing by price (close) and multiplying by 100 ( percent). Here are the groups
Group 1 :11,13, 18, 21
Group 2: 11, 13, 18, 21, 29, 34
Group 3: 11, 13, 18, 21, 29, 34, 47, 55
Group 4: 11, 13, 18, 21, 29, 34, 47, 55, 76, 89
Group 5: 11, 13, 18, 21, 29, 34, 47, 55, 76, 89, 123, 144
Group 6: 11, 13, 18, 21, 29, 34, 47, 55, 76, 89, 123, 144, 199, 233
Group 7: 11, 13, 18, 21, 29, 34, 47, 55, 76, 89, 123, 144, 199, 233, 322, 377
Group 8: 11, 13, 18, 21, 29, 34, 47, 55, 76, 89, 123, 144, 199, 233, 322, 377, 521, 610
Great for showing compression and expansion levels and showing divergences. I try to only use Groups 1-4 or Groups 1-5
Shows when moving average groups squeeze below the set level you set using plot shape function. Shape colors are color coordinated to match moving average dispersion plots
Uses DEMA and EMA
Week days colorsThe “Week Days Colors” indicator highlights each day of the week with a custom background color on the chart. You can assign a different color to each weekday (Monday to Sunday) using the input settings. This makes it easy to visually distinguish days on the chart, helping with pattern recognition, trading strategy timing, or simply improving chart readability.
Features:
• Custom background color for each day of the week
• Fully customizable through color inputs
• Works on any timeframe
• Helps visualize weekly patterns and cycles
GER40 Opening Range Breakout (Advanced)🔥 GER40 (DAX40) Opening Range Breakout Strategy
📌 Overview:
This strategy takes advantage of the high volatility and liquidity during the Frankfurt and London session openings (8:00–10:00 CET). It’s especially suitable for day traders who want to capitalize on early momentum.
✅ Strategy Steps:
1. Mark the Opening Range (08:00–08:15 CET)
Wait for the first 15 minutes after the Frankfurt open (08:00 CET).
Draw horizontal lines at the high and low of this range.
2. Entry Rules:
Buy when price breaks above the opening range high with strong volume.
Sell (short) when price breaks below the opening range low with strong volume.
3. Confirmation (optional but helpful):
Use a momentum indicator like RSI (above 50 for long, below 50 for short) or MACD crossing above/below the signal line.
Look for volume spike at breakout for validation.
4. Stop-Loss:
Set just below the range low (for long) or above the range high (for short).
Or use a fixed pip/point stop-loss like 15–25 points depending on current volatility.
5. Take Profit / Exit:
1:1.5 to 1:2 Risk/Reward Ratio.
Or scale out at fixed points (e.g., +20, +40).
Or trail stop after price moves in favor by +20 points.
📊 Additional Filters to Improve Accuracy:
Check macroeconomic calendar (avoid entering during red news like ECB, German CPI, etc.).
Use VWAP as a dynamic support/resistance for bias direction.
Use 5-min or 15-min charts for better signal clarity.
📈 Example:
Let’s say the DAX opens at 08:00 CET, and by 08:15, the high is 18,000 and the low is 17,950.
If price breaks above 18,000 with volume and RSI > 50, enter long.
Place stop at 17,950 or slightly below.
Take profit at 18,030–18,050 or trail stop.
🧠 Pro Tips:
GER40 is highly volatile, so ensure your risk per trade is small (e.g., 1% or less).
Avoid trading around major news (ECB rate decisions, German GDP, etc.).
Best sessions for GER40: Frankfurt Open (08:00 CET) and London Open (09:00 CET).
MACD Ignored Candle SignalsGBI AND RBI WITH MACD CONFIRMATION
Gives buy and sell signals based on a simple candlestick pattern that co-aligns with the macd momentum. earliest signals based on the trend are usually the best entries
Pivot Swings w Table Pivot Swings w Table — Intraday Structure & Range Analyzer
This indicator identifies key pivot highs and lows on the chart and highlights market structure shifts using a real-time table display. It helps traders visually confirm potential trade setups by tracking unbroken swing points and measuring the range between the most recent pivots.
🔍 Features:
🔹 Automatic Pivot Detection using configurable left/right bar logic.
🔹 Unbroken Pivot Filtering — only pivots that haven't been invalidated by price are displayed.
🔹 Dynamic Range Table with:
Latest valid Pivot High and Pivot Low
Total Range Width
Upper & Lower 25% range thresholds (useful for value/imbalance analysis)
🔹 Trend-Based Color Coding — the table background changes based on which pivot (high or low) occurred more recently:
🟥 Red: Downward bias (last pivot was a lower high)
🟩 Green: Upward bias (last pivot was a higher low)
🔹 Optional extension of pivot levels to the right of the chart for support/resistance confluence.
⚙️ How to Use:
Adjust the Left Bars and Right Bars inputs to fine-tune how swings are defined.
Look for price reacting near the Upper or Lower 25% zones to anticipate mean reversion or breakout setups.
Use the trend color of the table to confirm directional bias, especially useful during consolidation or retracement periods.
💡 Best For:
Intraday or short-term swing traders
Traders who use market structure, support/resistance, or trend-based strategies
Those looking to avoid low-quality trades in tight ranges
✅ Built for overlay use on price charts
📈 Works on all symbols and timeframes
🧠 No repainting — pivots are confirmed with completed bars