Timeframe Continuity BarsTimeframe Continuity Bars is a script that is extremely simple for good reason
So please, do not remove this post because it seems 'simple'
Now that's over with. Lets dive in to understand what timeframe continuity IS and what this indicator does.
Timeframe continuity is defined by 4 or more timeframes and it is the relationship of the last price traded to those 4 opening prices. Standard timeframe continuity would be using the M,W,D,60min timeframes.
The reason we use MTF analysis is because of the truth of what price is and how it works.
Price movement is SOLELY caused due to aggressive buying / selling. Some may attempt to refute this however at the end of the day. If the price is at 100.00 it is because a buyer is willing to buy there and a seller is willing to sell there. If those market participants did not want to buy or sell at 100.00 price would go up or down to meet the more aggressive participant.
So what does this look like you may ask...
If an aggressive buyer takes the offer we will see prices go up if they were willing to pay more than the last guy who took the offer.
So price may go from 100.00 to 100.01 because you decided to invest in that stock that day at that time with a market order
This same thing occurs when every other institution creates, adds, reduces, or exits a position. They have to buy or sell and they have to either do it aggressively or do it passively by sitting on the bid / ask and waiting.
So since this is true, we know that the relationship to the opening price is extremely important. This is because if price is above it's open that means buyers were willing to take the offer and buy at higher prices. If price is below it's open it means that sellers were willing to sell at the bid and they sold at lower prices.
So any candlestick chart is simply an aggregation of this aggressive buying/selling that is taking place at all times.
By using the timeframe continuity bars indicator we can measure the distance from the current open across 4 or more timeframes.
By doing this we can identify monthly participation groups, weekly participation groups, daily participation groups, and 60min participation groups.
When all those groups align green or red this is considered full timeframe continuity. Where the monthly weekly daily 60min groups are all taking the offer and buying, or all selling at the bid!
When this aligns this is when price is for CERTAIN going in one direction.
However, It is subject to change every 60 minutes as the 60min determines if those monthly weekly daily buyers are present RIGHT NOW.
So if the 60min changes we go into direct conflict against the month/week/day groups.
If we see the 60min and day align we go into direct conflict against the month/week
if the 60min day and week are red we over-take the monthly group for control. At the time of the week day and 60 being red we have ZERO evidence of the previous monthly buyer/seller that was present.
Now that you understand a little bit about continuity.. Check it out on the chart!
P.S Here is some tips
1) it is not about just all timeframes aligning, we want to see long green / red bars!
2) The opens reset on a cyclical basis. Each day, each week, each month... When the new timeframes open we will see timeframes have the SAME open. When the opens are the same price we have LESS evidence versus having all opens seperate.
3) Investors can use the Y Q M W as their 4 timeframes to see when institutional buying is occurring [go do a case study on AMEX:GLD and AMEX:SLV weekly timeframe with these settings]
4) You need to add 4 separate indicators and change the timeframes. It is ideal to then save this layout!
5) The best way to do price analysis is using #TheStrat across all 4 timeframes instead of one timeframe with this indicator. This is soley a tool we use to show changing of control between participation groups!
Candlestick analysis
High-volume buy and sell signals with OB and FVGBuy and sell signals on ob
Pivot Point Usage: Instead of detecting each candle of an opposite color, the script uses `ta.pivothigh/low`. This means it only marks a Pivot Point if the price has actually made a significant high or low relative to the 10 preceding and following candles.
Dynamic Cleanup (Mitigation): As soon as the price returns to "fill" the area (depending on your choice: simple contact or close), the box disappears from the chart. This keeps your view clean and focused on the remaining untouched areas.
Period Setting: You can increase the "Detection Period" (e.g., from 10 to 20) in the settings to filter out even more noise and keep only the major areas.
How to use it?
ORB + Key Session Levels (QC)Overview
A comprehensive session-based levels indicator that plots Opening Range Breakout (ORB) levels alongside key session highs and lows from Asian, London, and New York trading sessions.
Features
• Opening Range Breakout (ORB) with configurable duration (5m/15m/30m/1hr/custom)
• Previous Day High/Low with two modes: RTH Only (9:30-4:00 ET) or Full Session (6pm-5pm ET for futures)
• Asian, London, NY AM, and NY PM session levels
• Kill Zones mode (non-overlapping) vs Full Sessions mode
• Fair Value Gap detection with optional mitigation removal
• HTF Bias dashboard showing market structure
• Lines extend from the exact candle where highs/lows occurred
• Alerts for all level breaks
Kill Zone Defaults (ET)
• Asian: 8:00 PM - 12:00 AM
• London: 2:00 AM - 5:00 AM
• NY AM: 8:30 AM - 11:00 AM
• NY PM: 1:30 PM - 4:00 PM
How To Use
1. Select Session Mode (Kill Zones or Full Sessions)
2. Choose PDH/PDL Source (RTH for equities, Full Session for futures)
3. Customize session times as needed
4. Set up alerts for level breaks
All times are in Eastern Time (ET) and fully customizable.
This indicator is for educational purposes only. Not financial advice.
DayTradeMind Combined High Win Rate StrategyThe DayTradeMind Combined High Win Rate Strategy is a trend-following system that relies on confluence—the idea that a trade signal is stronger when multiple independent indicators agree. Instead of entering on a single indicator's whim, it uses a "voting" system to qualify entries and a strict risk-to-reward ratio to manage exits.Here is a breakdown of the three main layers of this strategy:1. The Voting Engine (Confluence Model)The strategy tracks four indicators and assigns a "point" for a bullish or bearish bias. It requires a minimum number of points (set by minConfirmations, usually 2/4) before it even considers a trade.IndicatorBullish Condition (1 point)Bearish Condition (1 point)PurposeMACDMACD Line > Signal LineMACD Line < Signal LineMeasures short-term momentum.DonchianPrice > 20-period MedianPrice < 20-period MedianIdentifies price relative to recent range.SuperTrendPrice above trend linePrice below trend lineFilters for the "Macro" trend direction.%B (Bollinger)Price in lower-mid range (0.2–0.5)Price in upper-mid range (0.5–0.8)Prevents buying when overextended.2. The Entry TriggerHaving enough "votes" (confirmations) isn't enough to enter. The strategy waits for a trigger event to ensure you aren't entering a stale trend. An entry only occurs if the minimum confirmations are met AND one of the following happens on the current bar:MACD Cross: The MACD line crosses over the signal line.Structural Break: The price crosses over the Donchian Middle (Median) line.This "Confirmation + Trigger" approach is designed to catch the start of a momentum push rather than buying a flat market.3. Mathematical Risk ManagementThe performance you see in your backtest (like the 46.86% return) is largely driven by the 2:1 Reward-to-Risk (RR) Ratio.Stop Loss (SL): Fixed at 2% below entry.Take Profit (TP): Fixed at 4% above entry.By aiming for a target twice as large as the risk, the strategy can remain profitable even with a win rate as low as 35%–40%. Mathematically, your winning trades compensate for more than two losing trades.Visualizing the SystemTriangles: Small green (up) and red (down) triangles appear on your chart only when the Votes + Trigger align perfectly.Background Shading: Faint green or red bands show you exactly when the "Confluence" is active. If the background is gray, the indicators are in conflict.Dashboard: The table in the top-right summarizes the current "score" for each indicator, letting you know how close you are to a potential trade signal.
BBMA By K1M4K-ID- Final Validated Re-Entry//@version=6
indicator("BBMA By K1M4K-ID- Final Validated Re-Entry", overlay=true, max_labels_count=500)
// === INPUT BB ===
lengthBB = input.int(20, title="BB Period")
devBB = input.float(2.0, title="Deviation")
src = input.source(close, title="Source")
bbColorMid = input.color(color.purple, title="Mid BB Color")
bbColorTop = input.color(color.purple, title="Top BB Color")
bbColorLow = input.color(color.purple, title="Low BB Color")
showFill = input.bool(true, title="Show BB Fill")
showReEntrySignals = input.bool(true, "Show Re-Entry Signals (✅)")
showSignalTable = input.bool(true, "Show Signal Table")
// === BB CALCULATION ===
basis = ta.sma(src, lengthBB)
dev = devBB * ta.stdev(src, lengthBB)
topBB = basis + dev
lowBB = basis - dev
// === PLOT BB ===
pMid = plot(basis, title="Mid BB", color=bbColorMid, linewidth=2)
pTop = plot(topBB, title="Top BB", color=bbColorTop, linewidth=2)
pLow = plot(lowBB, title="Low BB", color=bbColorLow, linewidth=2)
fill(pTop, pLow, color=showFill ? color.new(color.purple, 85) : na, title="BB Fill")
// === INPUT MA SETTING ===
ma_func(source, length) => ta.wma(source, length)
// === MA HIGH/LOW ===
ma5_high = ma_func(high, 5)
ma10_high = ma_func(high, 10)
ma5_low = ma_func(low, 5)
ma10_low = ma_func(low, 10)
// === PLOT MA ===
p_ma5_high = plot(ma5_high, title="MA 5 High", color=color.green, linewidth=2)
p_ma10_high = plot(ma10_high, title="MA 10 High", color=color.green, linewidth=2)
fill(p_ma5_high, p_ma10_high, color=color.new(color.green, 85), title="MA High Fill")
p_ma5_low = plot(ma5_low, title="MA 5 Low", color=color.red, linewidth=2)
p_ma10_low = plot(ma10_low, title="MA 10 Low", color=color.red, linewidth=2)
fill(p_ma5_low, p_ma10_low, color=color.new(color.red, 85), title="MA Low Fill")
// === EMA 50 ===
ema50 = ta.ema(close, 50)
plot(ema50, title="EMA 50", color=color.blue, linewidth=3)
// === CSA KUKUH (LOGIKA ASLI LU - TIDAK DIUBAH) ===
var bool hasCsaBuy = false
var bool hasCsaSell = false
isCsaKukuhBuy = close > ma5_high and close > ma10_high and close > basis
isCsaKukuhSell = close < ma5_low and close < ma10_low and close < basis
if isCsaKukuhBuy and not hasCsaBuy
hasCsaBuy := true
hasCsaSell := false
else if isCsaKukuhSell and not hasCsaSell
hasCsaSell := true
hasCsaBuy := false
showCsaBuy = isCsaKukuhBuy and not hasCsaBuy
showCsaSell = isCsaKukuhSell and not hasCsaSell
plotshape(showCsaBuy, title="CSA Kukuh Buy First", location=location.belowbar, color=color.green, style=shape.labelup, text="CSAK", textcolor=color.white, size=size.small)
plotshape(showCsaSell, title="CSA Kukuh Sell First", location=location.abovebar, color=color.red, style=shape.labeldown, text="CSAK", textcolor=color.white, size=size.small)
// === CSM (HANYA SAAT KELUAR DARI DALAM BB) ===
wasInsideBB = (close >= lowBB and close <= topBB )
csmBuySignal = wasInsideBB and close > topBB
csmSellSignal = wasInsideBB and close < lowBB
plotshape(csmBuySignal, title="CSM Buy", location=location.abovebar, color=color.green, style=shape.triangleup, text="CSM", size=size.tiny)
plotshape(csmSellSignal, title="CSM Sell", location=location.belowbar, color=color.red, style=shape.triangledown, text="CSM", size=size.tiny)
// === CSA (BREAKOUT TANPA MELEWATI MID BB) ===
isCsaBuy = close > ma5_high and close > ma10_high and close <= basis
isCsaSell = close < ma5_low and close < ma10_low and close >= basis
plotshape(isCsaBuy, title="CSA Buy", location=location.belowbar, color=color.new(color.green, 60), style=shape.circle, text="CSA", size=size.tiny)
plotshape(isCsaSell, title="CSA Sell", location=location.abovebar, color=color.new(color.red, 60), style=shape.circle, text="CSA", size=size.tiny)
// === EXTREME ===
basis_ext = ta.sma(close, 20)
dev_ext = 2 * ta.stdev(close, 20)
isExtremeBuy() => ta.wma(low, 5) < basis_ext - dev_ext
isExtremeSell() => ta.wma(high, 5) > basis_ext + dev_ext
plotshape(isExtremeBuy(), title="Extreme Buy", location=location.belowbar, color=color.green, style=shape.labelup, text="E", size=size.tiny, textcolor=color.white)
plotshape(isExtremeSell(), title="Extreme Sell", location=location.abovebar, color=color.red, style=shape.labeldown, text="E", size=size.tiny, textcolor=color.white)
// === ZZL MA ===
isZzlBuy = (ma5_high > basis and ma10_high > basis and ma5_low > basis and ma10_low > basis and
(ma5_high <= basis or ma10_high <= basis or ma5_low <= basis or ma10_low <= basis))
isZzlSell = (ma5_high < basis and ma10_high < basis and ma5_low < basis and ma10_low < basis and
(ma5_high >= basis or ma10_high >= basis or ma5_low >= basis or ma10_low >= basis))
var bool zzlBuyShown = false
var bool zzlSellShown = false
if isZzlBuy and not zzlBuyShown
label.new(bar_index, low, "Z", style=label.style_label_up, color=color.green, textcolor=color.white)
zzlBuyShown := true
if not isZzlBuy
zzlBuyShown := false
if isZzlSell and not zzlSellShown
label.new(bar_index, high, "Z", style=label.style_label_down, color=color.red, textcolor=color.white)
zzlSellShown := true
if not isZzlSell
zzlSellShown := false
// ===========================================
// === VALIDASI + RE-ENTRY (H4 & H1) ===
// ===========================================
// --- Ambil data ---
= request.security(syminfo.tickerid, "240", )
wasInside_h4 = request.security(syminfo.tickerid, "240", (close >= (ta.sma(close, lengthBB) - devBB * ta.stdev(close, lengthBB) ) and close <= (ta.sma(close, lengthBB) + devBB * ta.stdev(close, lengthBB) )))
csmBuy_h4 = wasInside_h4 and request.security(syminfo.tickerid, "240", close > (ta.sma(close, lengthBB) + devBB * ta.stdev(close, lengthBB)))
csmSell_h4 = wasInside_h4 and request.security(syminfo.tickerid, "240", close < (ta.sma(close, lengthBB) - devBB * ta.stdev(close, lengthBB)))
csakBuy_h4 = close_h4 > ma5h_h4 and close_h4 > ma10h_h4 and close_h4 > basis_h4
csakSell_h4 = close_h4 < ma5l_h4 and close_h4 < ma10l_h4 and close_h4 < basis_h4
csaBuy_h4 = close_h4 > ma5h_h4 and close_h4 > ma10h_h4 and close_h4 <= basis_h4
csaSell_h4 = close_h4 < ma5l_h4 and close_h4 < ma10l_h4 and close_h4 >= basis_h4
csmBuy_h1 = request.security(syminfo.tickerid, "60", (close >= (ta.sma(close, lengthBB) - devBB * ta.stdev(close, lengthBB) ) and close <= (ta.sma(close, lengthBB) + devBB * ta.stdev(close, lengthBB) )) and close > (ta.sma(close, lengthBB) + devBB * ta.stdev(close, lengthBB)))
csmSell_h1 = request.security(syminfo.tickerid, "60", (close >= (ta.sma(close, lengthBB) - devBB * ta.stdev(close, lengthBB) ) and close <= (ta.sma(close, lengthBB) + devBB * ta.stdev(close, lengthBB) )) and close < (ta.sma(close, lengthBB) - devBB * ta.stdev(close, lengthBB)))
csakBuy_h1 = request.security(syminfo.tickerid, "60", close > ta.wma(high,5) and close > ta.wma(high,10) and close > ta.sma(close, lengthBB))
csakSell_h1 = request.security(syminfo.tickerid, "60", close < ta.wma(low,5) and close < ta.wma(low,10) and close < ta.sma(close, lengthBB))
csaBuy_h1 = request.security(syminfo.tickerid, "60", close > ta.wma(high,5) and close > ta.wma(high,10) and close <= ta.sma(close, lengthBB))
csaSell_h1 = request.security(syminfo.tickerid, "60", close < ta.wma(low,5) and close < ta.wma(low,10) and close >= ta.sma(close, lengthBB))
csmBuy_m15 = request.security(syminfo.tickerid, "15", close > (ta.sma(close, lengthBB) + devBB * ta.stdev(close, lengthBB)))
csmSell_m15 = request.security(syminfo.tickerid, "15", close < (ta.sma(close, lengthBB) - devBB * ta.stdev(close, lengthBB)))
csakBuy_d = request.security(syminfo.tickerid, "D", close > ta.wma(high,5) and close > ta.wma(high,10) and close > ta.sma(close, lengthBB))
csakSell_d = request.security(syminfo.tickerid, "D", close < ta.wma(low,5) and close < ta.wma(low,10) and close < ta.sma(close, lengthBB))
csaBuy_d = request.security(syminfo.tickerid, "D", close > ta.wma(high,5) and close > ta.wma(high,10) and close <= ta.sma(close, lengthBB))
csaSell_d = request.security(syminfo.tickerid, "D", close < ta.wma(low,5) and close < ta.wma(low,10) and close >= ta.sma(close, lengthBB))
// --- Validasi ---
validCsakH4Buy = csakBuy_h4 and ta.highest(csmBuy_h1 ? 1 : 0, 4) == 1
validCsakH4Sell = csakSell_h4 and ta.highest(csmSell_h1 ? 1 : 0, 4) == 1
validCsakH1Buy = csakBuy_h1 and ta.highest(csmBuy_m15 ? 1 : 0, 4) == 1
validCsakH1Sell = csakSell_h1 and ta.highest(csmSell_m15 ? 1 : 0, 4) == 1
validCsmH1Buy = csmBuy_h1 and (csaBuy_h4 or csakBuy_h4) and ta.highest(csmBuy_m15 ? 1 : 0, 4) == 1
validCsmH1Sell = csmSell_h1 and (csaSell_h4 or csakSell_h4) and ta.highest(csmSell_m15 ? 1 : 0, 4) == 1
validCsmH4Buy = csmBuy_h4 and (csaBuy_d or csakBuy_d) and ta.highest(csmBuy_h1 or csmSell_h1 ? 1 : 0, 4) == 1
validCsmH4Sell = csmSell_h4 and (csaSell_d or csakSell_d) and ta.highest(csmBuy_h1 or csmSell_h1 ? 1 : 0, 4) == 1
// --- Re-Entry Area ---
inReEntryBuy = low <= math.max(ma5_low, ma10_low)
inReEntrySell = high >= math.min(ma5_high, ma10_high)
// --- Flag Valid + Hit Detection ---
var bool vCsakH4B = false, vCsakH4S = false
var bool vCsakH1B = false, vCsakH1S = false
var bool vCsmH4B = false, vCsmH4S = false
var bool vCsmH1B = false, vCsmH1S = false
var bool hitCsakH4B = false, hitCsakH4S = false
var bool hitCsakH1B = false, hitCsakH1S = false
var bool hitCsmH4B = false, hitCsmH4S = false
var bool hitCsmH1B = false, hitCsmH1S = false
// Reset hit setiap candle
hitCsakH4B := false
hitCsakH4S := false
hitCsakH1B := false
hitCsakH1S := false
hitCsmH4B := false
hitCsmH4S := false
hitCsmH1B := false
hitCsmH1S := false
// Aktifkan flag saat valid
vCsakH4B := validCsakH4Buy ? true : vCsakH4B
vCsakH4S := validCsakH4Sell ? true : vCsakH4S
vCsakH1B := validCsakH1Buy ? true : vCsakH1B
vCsakH1S := validCsakH1Sell ? true : vCsakH1S
vCsmH4B := validCsmH4Buy ? true : vCsmH4B
vCsmH4S := validCsmH4Sell ? true : vCsmH4S
vCsmH1B := validCsmH1Buy ? true : vCsmH1B
vCsmH1S := validCsmH1Sell ? true : vCsmH1S
// Deteksi & reset saat re-entry
if vCsakH4B and inReEntryBuy
hitCsakH4B := true
vCsakH4B := false
if vCsakH4S and inReEntrySell
hitCsakH4S := true
vCsakH4S := false
if vCsakH1B and inReEntryBuy
hitCsakH1B := true
vCsakH1B := false
if vCsakH1S and inReEntrySell
hitCsakH1S := true
vCsakH1S := false
if vCsmH4B and inReEntryBuy
hitCsmH4B := true
vCsmH4B := false
if vCsmH4S and inReEntrySell
hitCsmH4S := true
vCsmH4S := false
if vCsmH1B and inReEntryBuy
hitCsmH1B := true
vCsmH1B := false
if vCsmH1S and inReEntrySell
hitCsmH1S := true
vCsmH1S := false
// --- Plot Re-Entry ---
//plotshape(showReEntrySignals and hitCsakH4B, location=location.belowbar, color=color.teal, style=shape.labelup, text="✅", size=size.normal)
//plotshape(showReEntrySignals and hitCsakH4S, location=location.abovebar, color=color.orange, style=shape.labeldown, text="✅", size=size.normal)
//plotshape(showReEntrySignals and hitCsakH1B, location=location.belowbar, color=color.green, style=shape.labelup, text="✅", size=size.small)
//plotshape(showReEntrySignals and hitCsakH1S, location=location.abovebar, color=color.red, style=shape.labeldown, text="✅", size=size.small)
//plotshape(showReEntrySignals and hitCsmH1B, location=location.belowbar, color=color.green, style=shape.labelup, text="✅ CSM", size=size.tiny)
//plotshape(showReEntrySignals and hitCsmH1S, location=location.abovebar, color=color.red, style=shape.labeldown, text="✅ CSM", size=size.tiny)
//plotshape(showReEntrySignals and hitCsmH4B, location=location.belowbar, color=color.teal, style=shape.labelup, text="✅ CSM", size=size.tiny)
//plotshape(showReEntrySignals and hitCsmH4S, location=location.abovebar, color=color.orange, style=shape.labeldown, text="✅ CSM", size=size.tiny)
// ===========================================
// === TABEL SIGNAL H1 & H4 (FINAL) ===
// ===========================================
var table sigTable = table.new(position.top_right, 4, 5, border_width=1)
if barstate.islast and showSignalTable
table.cell(sigTable, 0, 0, "TF", text_color=color.white, bgcolor=color.black)
table.cell(sigTable, 1, 0, "Signal", text_color=color.white, bgcolor=color.black)
table.cell(sigTable, 2, 0, "Status", text_color=color.white, bgcolor=color.black)
table.cell(sigTable, 3, 0, "Re-Entry", text_color=color.white, bgcolor=color.black)
table.cell(sigTable, 0, 1, "H4", text_color=color.white, bgcolor=color.black)
table.cell(sigTable, 1, 1, "CSAK Buy", text_color=color.green, bgcolor=color.new(color.green, 90))
table.cell(sigTable, 2, 1, vCsakH4B ? "✅ Valid" : "-", text_color=vCsakH4B ? color.green : color.gray, bgcolor=color.new(vCsakH4B ? color.green : color.gray, 90))
table.cell(sigTable, 3, 1, hitCsakH4B ? "✅ Hit" : "-", text_color=hitCsakH4B ? color.teal : color.gray, bgcolor=color.new(hitCsakH4B ? color.teal : color.gray, 90))
table.cell(sigTable, 0, 2, "H4", text_color=color.white, bgcolor=color.black)
table.cell(sigTable, 1, 2, "CSAK Sell", text_color=color.red, bgcolor=color.new(color.red, 90))
table.cell(sigTable, 2, 2, vCsakH4S ? "✅ Valid" : "-", text_color=vCsakH4S ? color.red : color.gray, bgcolor=color.new(vCsakH4S ? color.red : color.gray, 90))
table.cell(sigTable, 3, 2, hitCsakH4S ? "✅ Hit" : "-", text_color=hitCsakH4S ? color.orange : color.gray, bgcolor=color.new(hitCsakH4S ? color.orange : color.gray, 90))
table.cell(sigTable, 0, 3, "H1", text_color=color.white, bgcolor=color.black)
table.cell(sigTable, 1, 3, "CSM Buy", text_color=color.green, bgcolor=color.new(color.green, 90))
table.cell(sigTable, 2, 3, vCsmH1B ? "✅ Valid" : "-", text_color=vCsmH1B ? color.green : color.gray, bgcolor=color.new(vCsmH1B ? color.green : color.gray, 90))
table.cell(sigTable, 3, 3, hitCsmH1B ? "✅ Hit" : "-", text_color=hitCsmH1B ? color.teal : color.gray, bgcolor=color.new(hitCsmH1B ? color.teal : color.gray, 90))
table.cell(sigTable, 0, 4, "H1", text_color=color.white, bgcolor=color.black)
table.cell(sigTable, 1, 4, "CSM Sell", text_color=color.red, bgcolor=color.new(color.red, 90))
table.cell(sigTable, 2, 4, vCsmH1S ? "✅ Valid" : "-", text_color=vCsmH1S ? color.red : color.gray, bgcolor=color.new(vCsmH1S ? color.red : color.gray, 90))
table.cell(sigTable, 3, 4, hitCsmH1S ? "✅ Hit" : "-", text_color=hitCsmH1S ? color.orange : color.gray, bgcolor=color.new(hitCsmH1S ? color.orange : color.gray, 90))
ORB Breakout Strategy📊 Overview
📈 Systematic intraday Opening Range Breakout (ORB) strategy
🧭 Designed for index CFDs (e.g. US500)
⏱️ Optimized for 5-minute charts during regular trading hours
🛡️ Strict risk management and position sizing
🚦 Maximum one trade per day
💡 Core Idea
🌅 The market establishes a key price range shortly after the open
🚀 A confirmed breakout from this opening range can signal directional momentum
🎯 The strategy trades only confirmed breakouts with predefined risk
📐 Opening Range Definition
⏰ Opening range is defined between 09:30 and 09:45 (exchange time)
🕯️ Uses the first three 5-minute candles of the session
⬆️ Opening Range High is the highest high of those candles
⬇️ Opening Range Low is the lowest low of those candles
🟢 Long Trade
📊 A 5-minute candle closes above the Opening Range High
🟩 A Fair Value Gap (FVG) exists relative to the candle 10 minutes earlier
🧲 A buy limit order is placed at the Opening Range High
🔴 Short Trade
📉 A 5-minute candle closes below the Opening Range Low
🟥 A Fair Value Gap (FVG) exists relative to the candle 10 minutes earlier
🧲 A sell limit order is placed at the Opening Range Low
🛑 Stop Loss
📉 Long trades use the low of the candle 10 minutes before the breakout
📈 Short trades use the high of the candle 10 minutes before the breakdown
🎯 Take Profit
⚖️ Fixed reward-to-risk ratio of 2:1
📏 Take profit distance equals two times the stop loss distance
💰 Position Sizing
💵 Fixed dollar risk per trade (default: $2,000)
📐 Position size is calculated dynamically based on stop loss distance
🔁 Risk remains consistent across changing volatility conditions
⏳ Trade Management Rules
🚦 Maximum one trade per day, including same-bar entries and exits
🕛 No new entries after 12:00 (exchange time)
⏰ All open positions are closed at 15:50
❌ Pending orders are cancelled after the entry cutoff or at session end
⚙️ Execution & Costs
💸 Commission model can be configured in the strategy settings
🧪 Backtests use TradingView Strategy Tester mechanics
📝 Notes
📚 This is a rules-based trading strategy, not a signal service
🔍 Results depend on instrument, broker feed, spreads, and commissions
🧠 Forward testing is strongly recommended before live trading
⚠️ Disclaimer
📖 This script is provided for educational and research purposes only
🚫 It does not constitute financial advice
🔥 Trading leveraged instruments involves significant risk
Gold Pin Bar Pivot Alerts - FixedThis script is designed for the high volatility of Gold (XAU/USD). It identifies Pin Bars with body less than 30% of the candle's total range, and the candle occuring at a structural Pivot High or Pivot Low
WatchmenThe Watchmen Indicator tracks potential market maker breakeven zones using dynamic open/close ranges (no wicks in Fib calc). It expands the range until the 50% level is breached by the full candle range, then resets. Green = long/down setups (buy retrace), Red = short/up setups (sell retrace). Uses only open/close for levels, high/low for breaches. Ideal for mean-reversion in trends.
Anhnga4.0 - Filter ToggleINPUTS:
1.5 0.8 (OR 1.6 0.5/0.6)
BE=0.45
1
MAs: 35 135
7
This Pine Script code defines a trading strategy named **"Anhnga4.0 - Filter Toggle"**. It is a trend-following strategy that uses momentum oscillators and moving averages to identify entries, while featuring a specific "Overextension Filter" to avoid buying at the top or selling at the bottom.
Here is a breakdown of how the script works:
---
## 1. Core Trading Logic (The Entry)
The strategy looks for a "perfect storm" of three factors before entering a trade:
* **Momentum (WaveTrend):** It uses the WaveTrend oscillator (`wt1` and `wt2`).
* **Long:** A bullish crossover happens while the oscillator is below the zero line (oversold).
* **Short:** A bearish crossunder happens while the oscillator is above the zero line (overbought).
* **Trend Confirmation:** The price must be on the "correct" side of three different lines: the 20-period Moving Average (BB Basis), the 50-period SMA, and the 200-period SMA.
* **The Window:** You don't have to enter exactly on the cross. The `Signal Window` allows the trade to trigger up to 4 bars after the momentum cross, provided the trend filters align.
## 2. The "Overextension" Filter
This is a unique feature of this script. It calculates the distance between the current price and the **50-period Moving Average**.
* If the price is too far away from the MA (defined by the **ATR Limit**), the script assumes the move is "exhausted."
* If `Enable Overextension Filter?` is on, the strategy will skip these trades to avoid "chasing the pump."
* **Visual Cue:** The chart background turns **purple** when the price is considered overextended.
---
## 3. Risk Management & Exit Strategy
The script manages trades dynamically using Bollinger Bands and Risk:Reward ratios:
| Feature | Description |
| --- | --- |
| **Stop Loss (SL)** | Set at the **Lower Bollinger Band** for Longs and **Upper Band** for Shorts. |
| **Take Profit (TP)** | Calculated based on your **RR Ratio** (default is 2.0). If your risk is $10, it sets the target at $20 profit. |
| **Breakeven** | A "protection" feature. Once the price moves in your favor by a certain amount (the `Breakeven Trigger`), the script moves the Stop Loss to your entry price to ensure a "risk-free" trade. |
---
## 4. Visual Elements on the Chart
* **Green Lines:** Your target price (TP).
* **Red Lines:** Your initial Stop Loss.
* **Yellow Lines:** Indicates the Stop Loss has been moved to **Breakeven**.
* **Purple Background:** High alert—price is overextended; trades are likely being filtered out.
---
## Summary of Settings
* **BB Multiplier:** Controls how wide your initial stop loss is.
* **ATR Limit:** Controls how sensitive the "Overextension" filter is (higher = more trades allowed; lower = stricter filtering).
* **Breakeven Trigger:** Set to 1.0 by default, meaning once you are "1R" (profit equals initial risk) in profit, the stop moves to entry.
Volume Profile: Date-Range ObservationI have refined the strategy developed by kv4coins , incorporating an additional option for the observation date range. Previously, when seeking a fixed date range—particularly to track data from the onset of an event-driven trigger up to the present—it was somewhat cumbersome. To address this, I added a new date selection feature to accommodate the need for observing specific time periods.
Broadening Formation Reclaim Stats v1.0Description: Broadening Formation Reclaim Stats v1.0
Overview
The Broadening Formation Reclaim Stats is a technical analysis tool designed to track and quantify "reclaim" price action within expanding market structures (Broadening Formations). It focuses on scenarios in which price breaches a prior Swing High or Swing Low and subsequently rotates back into the range, often signaling a potential reversal toward the opposite side of the formation.
This indicator is built for traders who study price action rotations, "The Strat" (Rev 2-2 / Failed 2-Down/Up), and liquidity sweeps.
How It Works
The script utilizes a state-machine logic to track price movements relative to high and low pivots:
1. Structure Identification: It identifies recent Pivot Highs and Lows (Auto-Swing mode) or allows users to input specific price levels (Manual mode).
2. The Breach: It identifies when price breaks above the established high or below the established low, "locking" the structure for a potential reclaim.
3. The Reclaim: A signal is generated when price moves back inside the range using specific price action triggers:
Rev 2-2: A reversal pattern where price reverses the direction of the previous candle.
Failed 2-Down/Up: Price makes a new wick extreme but closes back within the previous candle's range and below its opening price.
4. Targets: The script considers a reclaim "Successful" if price reaches the opposite side of the broadening formation (the opposing pivot).
Key Features
Backtesting Dashboard: A real-time table displaying the total number of reclaims, global success rates, and a breakdown of Bullish vs. Bearish performance.
Flexible Lookbacks: Statistics can be calculated based on the entire chart history, "Today Only" (for day traders), or a specific number of bars.
Dual Mode Detection: Choose between **Auto Swing** detection (based on a user-defined pivot length) or **Manual** mode for specific levels.
Optimized Visuals: Uses the Pine Script Plot Engine for core levels to ensure price-scale stability and "Box Objects" for clear pivot visualization.
Settings
Swing Length: Adjust the sensitivity of the pivot detection.
BF Mode: Toggle between automatic pivot tracking or manual price entry.
Statistics Start Mode: Filter the data displayed in the table to focus on recent price action or historical performance.
UI Customization: Fully adjustable table position, size, and transparency.
Disclaimer
This indicator is for educational and research purposes only. It tracks historical price action patterns and does not constitute financial advice. Past performance (success rates) as displayed in the dashboard is not an indicator of future results.
MFI-RSI Convergence Strategy거래량(Volume)과 가격 모멘텀을 동시에 고려하는 **MFI(Money Flow Index)**는 지지선에서의 '진짜 반등'을 포착하는 데 가장 강력한 도구입니다. 여기에 RSI를 결합하여 모멘텀의 강도까지 확인하는 'Hybrid Volume-Momentum Oscillator' 전략을 작성해 드립니다.
하이브리드 지표의 핵심 메커니즘
MFI(Money Flow Index)의 역할:
MFI는 단순히 가격이 낮아졌는가만 보는 것이 아니라, **'낮은 가격에서 거래량이 터졌는가'**를 계산합니다.
지지선에서 MFI가 20 이하로 떨어진다는 것은 "스마트 머니"가 매집을 준비하는 단계이거나, 투매가 정점에 달해 거래량이 실린 반등이 임박했음을 뜻합니다.
RSI와의 컨버전스(Convergence):
RSI는 가격의 속도를 측정합니다. MFI가 과매도인데 RSI가 아직 높다면, 거래량은 들어오지만 가격의 하락 관성이 여전히 강하다는 뜻입니다.
이 코드의 핵심은 mfi_val <= mfi_low와 rsi_val <= rsi_low가 동시에 만족될 때만 진입하는 것입니다. 이는 거래량 유입 + 하락 관성 둔화가 일치하는 고확률 타점입니다.
리페인팅 차단 및 현실적 시뮬레이션:
ta.mfi와 ta.rsi는 기본적으로 현재 봉의 종가를 기준으로 계산되므로 리페인팅이 발생하지 않습니다.
commission_value=0.05를 통해 거래소 수수료를 반영하여, 잦은 매매로 인한 손실 가능성을 미리 확인할 수 있게 설계했습니다.
//@version=6
strategy("MFI-RSI Convergence Strategy",
overlay=false, // 하단 지표 형태 확인을 위해 false 설정 (차트 위 신호는 별도 plotshape 사용)
initial_capital=10000,
default_qty_type=strategy.percent_of_equity,
default_qty_value=10,
commission_type=strategy.commission.percent,
commission_value=0.05,
slippage=1)
// --- ---
group_date = "1. 백테스트 기간"
start_time = input.time(timestamp("2024-01-01 00:00:00"), "시작일", group=group_date)
end_time = input.time(timestamp("2026-12-31 23:59:59"), "종료일", group=group_date)
within_window() => time >= start_time and time <= end_time
group_mfi = "2. MFI (Volume) 설정"
mfi_length = input.int(14, "MFI 기간", minval=1, group=group_mfi)
mfi_low = input.int(20, "MFI 과매도 (매수세 유입 대기)", group=group_mfi)
mfi_high = input.int(80, "MFI 과매수 (매도세 유입 대기)", group=group_mfi)
group_rsi = "3. RSI (Momentum) 설정"
rsi_length = input.int(14, "RSI 기간", minval=1, group=group_rsi)
rsi_low = input.int(30, "RSI 과매도", group=group_rsi)
rsi_high = input.int(70, "RSI 과매수", group=group_rsi)
group_risk = "4. 리스크 관리"
tp_pct = input.float(3.0, "익절 (%)", step=0.1, group=group_risk) / 100
sl_pct = input.float(1.5, "손절 (%)", step=0.1, group=group_risk) / 100
// --- ---
// MFI (가격 + 거래량 가중)
mfi_val = ta.mfi(close, mfi_length)
// RSI (가격 변동 강도)
rsi_val = ta.rsi(close, rsi_length)
// --- ---
// 매수 조건: MFI와 RSI가 모두 과매도 구간일 때 (강력한 반등 예상 지점)
long_condition = (mfi_val <= mfi_low) and (rsi_val <= rsi_low)
// 매도 조건: MFI와 RSI가 모두 과매수 구간일 때
short_condition = (mfi_val >= mfi_high) and (rsi_val >= rsi_high)
// --- ---
if within_window()
if long_condition
strategy.entry("Long", strategy.long, comment="VLM+MOM Bottom")
if short_condition
strategy.entry("Short", strategy.short, comment="VLM+MOM Top")
// 익절 및 손절 설정
strategy.exit("Ex Long", "Long", limit=strategy.position_avg_price * (1 + tp_pct), stop=strategy.position_avg_price * (1 - sl_pct))
strategy.exit("Ex Short", "Short", limit=strategy.position_avg_price * (1 - tp_pct), stop=strategy.position_avg_price * (1 + sl_pct))
// --- ---
// 배경 가이드라인
hline(mfi_high, "Upper Boundary", color=color.gray, linestyle=hline.style_dashed)
hline(50, "Middle", color=color.new(color.gray, 50))
hline(mfi_low, "Lower Boundary", color=color.gray, linestyle=hline.style_dashed)
// 지표 플롯
plot(mfi_val, "MFI (Volume Flow)", color=color.aqua, linewidth=2)
plot(rsi_val, "RSI (Momentum)", color=color.yellow, linewidth=1)
// 중첩 구간 강조 (Convergence)
fill_color = (mfi_val <= mfi_low and rsi_val <= rsi_low) ? color.new(color.green, 70) :
(mfi_val >= mfi_high and rsi_val >= rsi_high) ? color.new(color.red, 70) : na
bgcolor(fill_color)
// 신호 발생 시 하단에 아이콘 표시
plotshape(long_condition, title="Buy Signal", location=location.bottom, color=color.green, style=shape.triangleup, size=size.small)
plotshape(short_condition, title="Sell Signal", location=location.top, color=color.red, style=shape.triangledown, size=size.small)
Order Blocks ScannerHighlights order blocks with inneficiencies onto the chart, while removing mitigated blocks if price has touched that supply or demand area.
Also by default changes the candle color of the order block origin candle to make it easier to see already mitigated blocks for potential breaker block zones.
Candle Pip SizeThis script shows previous candle close to low for bullish candles and close to high for bearish candles.
It also shows for current candle price to low for bullish candles and current candle price to high for bearish candles.
It's useful for calculating the stop loss risk.
Change Pip/Tick size input based on the pair (e.g. 1 MNQ, 0.1 USD/JPY)
Daily Support/Resistance Points (Historical Days)indicator plots support and resistance levels derived from historical price action. It analyzes higher‑timeframe candles (Daily/Weekly/Monthly) and ranks levels by strength and number of touches, then draws the most relevant levels around the current price. If no strong levels are found, it falls back to touch‑based levels so you still get meaningful lines.
How to Use:
Add the script to any chart.
Choose Levels Timeframe:
Auto (recommended): follows the chart timeframe (D/W/M).
D / W / M: force a specific timeframe.
Set lookback windows:
Lookback Days (D) – default 200
Lookback Weeks (W) – default 104
Lookback Months (M) – default 60
Adjust sensitivity:
Min Strength – filters weaker levels.
Volume Multiplier – requires higher volume for stronger levels.
Time Decay – gives more weight to recent data.
Min Touches (Fallback) – used when no strong levels are found.
Optional: enable Show Debug Info to see how many levels are detected.
Open Source & License:
This script is open source under the MIT License. You are свободно to use, modify, and share it with attribution.
Author / Contact:
Ron Belson
For questions or requests, contact: ronbelson@gmail.com
Hazmeed HTF Candles Aligned)HTF Candles Overlay (v6, Aligned + Accurate Wicks)
This indicator overlays higher timeframe candles on your current chart.
It allows you to visually compare HTF price action directly on your lower timeframe chart without switching timeframes.
⭐ Features
Displays Higher Timeframe (HTF) candles on the current chart
Fully aligned to HTF candle start time
Option to show accurate wicks
Supports configurable:
HTF timeframe (e.g., 1D, 4H, 1W)
Number of HTF candles displayed
Candle width (in bars)
Bull/Bear colors and wick color
Pre-Market Levels Monitor - CandleClub (20 Stocks)Monitor 20 stocks simultaneously with automatic breakout/breakdown alerts based on pre-market and previous day levels.
What It Does
This indicator tracks four critical price levels for up to 20 stocks in a single dashboard:
- PMH (Pre-Market High) - Highest price from 4:00 AM - 9:30 AM ET
- PML (Pre-Market Low) - Lowest price from 4:00 AM - 9:30 AM ET
- PDH (Previous Day High) - Previous trading day's high
- PDL (Previous Day Low) - Previous trading day's low
Key Features
✅ Real-time Dashboard - All 20 stocks displayed in a color-coded table
- Green cells = Price above level (bullish)
- Red cells = Price below level (bearish)
- Gray cells = Level not yet broken
✅ Smart Alerts - Automatic notifications when stocks break key levels
- Bullish Breakout: Price breaks BOTH PMH and PDH
- Bearish Breakdown: Price breaks BOTH PML and PDL
- Maximum 2 alerts per direction per stock per day (prevents spam)
✅ Zero Manual Work - Set it and forget it
- Levels auto-update daily at 4:00 AM ET
- Works during pre-market, regular hours, and displays data on weekends
- Edge detection ensures alerts fire only once per break
✅ Fully Customizable
- Choose any 20 US stocks
- Adjustable table position and size
- Sort by total alerts, bullish alerts, or bearish alerts
- Customize session times if needed
How To Use
1. IMPORTANT: Use on a 1-minute chart (required for data batching)
2. Enable "Extended Hours" in chart settings to see pre-market data
3. Configure your 20 ticker symbols in indicator settings
4. Set up TradingView alerts for notifications
Perfect For
- Pre-market traders monitoring multiple stocks
- Day traders tracking breakout opportunities
- Swing traders watching key support/resistance levels
- Anyone who wants automated multi-stock level monitoring
Technical Details
- Pine Script v6 - Latest version for optimal performance
- Optimized batching - Stays under TradingView's API call limits
- 20-stock maximum - Due to request.security() call restrictions (20 stocks × 2 calls = 40 limit)
- TradingView Standard plan or higher required
Alert Examples
"Alert: AAPL Bullish Breakout - Break #1
PMH: $183.25 (broken)
PDH: $181.50 (broken)
Current: $183.75
Time: 10:23:15"
Default Stocks Included
Technology: AAPL, MSFT, GOOGL, AMZN, META, NVDA, TSLA, NFLX, AMD, INTC
Finance: JPM, BAC, WFC, GS, MS, C
Healthcare: JNJ, UNH, PFE, ABBV, MRK, TMO
Consumer: WMT, HD, MCD
(All symbols are fully customizable)
Settings Overview
- Symbols (1-20): Configure your watchlist
- Session Times: Adjust pre-market/RTH times (Eastern Time)
- Display Options: Table position, cell size, text size, sorting
- Time Zone: All times in Eastern Time (auto-converts to your local time)
Notes
- Alerts limited to 2 per direction per stock to prevent notification spam
- Use 1-minute chart required (batching system needs consecutive bars)
- Enable Extended Hours to capture pre-market data
- Maximum 80 alerts per day possible (20 stocks × 4 alerts max)
Version
1.0 - Initial Release (January 2026)
---
Created by Gautham Kanaparthy
This indicator is for educational purposes only and does not constitute financial advice. Trading involves risk.
D1 High/LowThis indicator automatically plots the previous day’s high and low (D1) as thin dashed horizontal lines on the chart.
The levels are calculated strictly from yesterday’s daily candle only.
The lines are anchored directly at the previous day’s candle and extend to the right, matching institutional-style reference levels.
Visible on Daily (D1) and all lower timeframes (H4, H1, M15, etc.).
The lines reset at the start of each new trading day to reflect the latest completed session.
Designed as a context and liquidity reference, not as a predictive indicator.
Act AlgoPanneer Selvam is inviting you to a scheduled Zoom meeting
Topic: Online Follow-Up Session (Every Sunday)
Time: 07:00 AM (IST)
XAUUSD Mean Reversion Strategy Gold (ATR and RSI)The XAUUSD Mean Reversion Strategy – Gold v6 is a non-repainting TradingView strategy designed specifically for Gold (XAUUSD). It capitalizes on price overextensions and statistically probable pullbacks toward the mean, a behavior Gold frequently exhibits during active market sessions.
🔍 Strategy Logic
Uses EMA 50 as the mean price reference
Detects overextended conditions with RSI (14)
Trades are taken only when price deviates significantly from the mean
Designed for both long and short positions
📈 Entry Conditions
Long Trades
Price below EMA 50
RSI below oversold level
Short Trades
Price above EMA 50
RSI above overbought level
📉 Exit & Risk Management
ATR-based Stop Loss adapts to Gold’s volatility
Take Profit Options
Mean reversion back to EMA
Fixed ATR-based risk-to-reward
One trade at a time to control exposure
⚙️ Features
Fully backtestable
Non-repainting
Optimized for XAUUSD volatility
Adjustable inputs for optimization
Works best on 5m–30m timeframes
📊 Recommended Use
XAUUSD (Gold)
London & New York sessions
Intraday mean-reversion traders
⚠️ This strategy is for educational and research purposes only. Always perform your own testing and risk management before using it in live markets.






















