ERL & IRL (Swing Levels) Sunnat//@version=5
indicator("ERL & IRL (Swing Levels)", overlay=true)
// Inputs
left_bars = input.int(5, "Left bars (swing strength)", minval=1)
right_bars = input.int(5, "Right bars (swing strength)", minval=1)
line_len = input.int(10, "Line length (bars)", minval=1) // short line
// Detect swing high (ERL) and swing low (IRL)
swingHigh = ta.pivothigh(high, left_bars, right_bars)
swingLow = ta.pivotlow(low, left_bars, right_bars)
// Draw ERL when swing high is found
if not na(swingHigh)
line.new(bar_index - right_bars, swingHigh,
bar_index - right_bars + line_len, swingHigh,
xloc=xloc.bar_index, extend=extend.none,
color=color.aqua, width=2)
label.new(bar_index - right_bars + line_len, swingHigh, "ERL",
xloc=xloc.bar_index, yloc=yloc.price,
color=color.new(color.aqua, 0), textcolor=color.black)
// Draw IRL when swing low is found
if not na(swingLow)
line.new(bar_index - right_bars, swingLow,
bar_index - right_bars + line_len, swingLow,
xloc=xloc.bar_index, extend=extend.none,
color=color.orange, width=2)
label.new(bar_index - right_bars + line_len, swingLow, "IRL",
xloc=xloc.bar_index, yloc=yloc.price,
color=color.new(color.orange, 0), textcolor=color.black)
Indikator dan strategi
Combined SMA with Murrey Math and Fixed Fractal Bands "Combined SMA with Murrey Math and Fixed Fractal Bands" , overlaying a Simple Moving Average (SMA), Murrey Math (MM) bands, and fixed fractal bands on a price chart. Here's a brief description of its functionality:Inputs:SMA Length: Configurable period for the SMA (default: 180 bars).
Resolution: Optional custom timeframe for data.
Frame Size for MM: Lookback period for Murrey Math calculations (default: 180 bars, adjustable via multiplier).
Ignore Wicks: Option to use open/close prices instead of high/low for MM calculations.
Fixed Fractal Size: Fixed distance in points for fractal bands (default: 1.22).
Shade 3/8-5/8 Overlap: Option to highlight overlapping regions between SMA-centered and absolute MM bands.
Data Source:Uses open, close, high, and low prices from the specified ticker and timeframe.
Optionally ignores wicks (high/low) for MM calculations, using max/min of open/close instead.
SMA Calculation:Computes a Simple Moving Average (SMA) based on the closing price and user-defined length.
Murrey Math Bands:Absolute MM Bands: Calculated using a dynamic range based on the highest/lowest prices over a lookback period, scaled logarithmically to create 13 levels (from -3/8 to +3/8, with 8/8 as the midpoint). These adapt to price action.
SMA-Centered MM Bands: Constructs MM bands relative to the SMA, with levels (0/8 to 8/8) spaced by a calculated increment derived from the absolute MM range.
Colors bands dynamically (green for bullish, red for bearish, gray for neutral) based on changes in the 4/8 level or increment, with labels indicating "Higher," "Lower," or "Same" states.
Fixed Fractal Bands:Plots six fixed-distance bands (±1, ±2, ±3) around the SMA, using a user-defined point value (default: 1.22).
Overlaps and Shading:Detects overlaps between SMA-centered and absolute MM bands at key levels (7/8-8/8, 0/8-1/8, and optionally 3/8-5/8).
Shades overlapping regions with distinct colors (red for 7/8-8/8, green for 0/8-1/8, blue for 3/8-5/8).
Fills specific SMA-centered MM regions (3/8-5/8, 0/8-1/8, 7/8-8/8) for visual emphasis.
Visualization:Plots SMA-centered MM bands, absolute MM bands, and fixed fractal bands as stepped lines with varying colors and transparency.
Displays a table at the bottom-right showing the current MM increment value.
Adds labels when the 4/8 level or increment changes, indicating trend direction.
In summary, this indicator combines a user-defined SMA with Murrey Math bands (both absolute and SMA-centered) and fixed fractal bands to provide a multi-level support/resistance framework. It highlights dynamic price levels, trend direction, and key overlaps, aiding traders in identifying potential reversal or consolidation zones.
icreature RSI Divergence + OB/OSThis script simply showing all divergences and fill in colours when ob or os . Enjoy!
Swing High/Low MarkerThis indicator allows you to find the swing highs and lows of the chart and offsets it by the ATR and a custom factor to give you concrete breakout and stop loss prices.
Trend Fib Zone Bounce (TFZB) [KedArc Quant]Description:
Trend Fib Zone Bounce (TFZB) trades with the latest confirmed Supply/Demand zone using a single, configurable Fib pullback (0.3/0.5/0.6). Trade only in the direction of the most recent zone and use a single, configurable fib level for pullback entries.
• Detects market structure via confirmed swing highs/lows using a rolling window.
• Draws Supply/Demand zones (bearish/bullish rectangles) from the latest MSS (CHOCH or BOS) event.
• Computes intra zone Fib guide rails and keeps them extended in real time.
• Triggers BUY only inside bullish zones and SELL only inside bearish zones when price touches the selected fib and closes back beyond it (bounce confirmation).
• Optional labels print BULL/BEAR + fib next to the triangle markers.
What it does
Finds structure using confirmed swing highs/lows (you choose the confirmation length).
Builds the latest zone (bullish = demand, bearish = supply) after a CHOCH/BOS event.
Draws intra-zone “guide rails” (Fib lines) and extends them live.
Signals only with the trend of that zone:
BUY inside a bullish zone when price tags the selected Fib and closes back above it.
SELL inside a bearish zone when price tags the selected Fib and closes back below it.
Optional labels print BULL/BEAR + Fib next to triangles for quick context
Why this is different
Most “zone + fib + signal” tools bolt together several indicators, or fire counter-trend signals because they don’t fully respect structure. TFZB is intentionally minimal:
Single bias source: the latest confirmed zone defines direction; nothing else overrides it.
Single entry rule: one Fib bounce (0.3/0.5/0.6 selectable) inside that zone—no counter-trend trades by design.
Clean visuals: you can show only the most recent zone, clamp overlap, and keep just the rails that matter.
Deterministic & transparent: every plot/label comes from the code you see—no external series or hidden smoothing
How it helps traders
Cuts decision noise: you always know the bias and the only entry that matters right now.
Forces discipline: if price isn’t inside the active zone, you don’t trade.
Adapts to volatility: pick 0.3 in strong trends, 0.5 as the default, 0.6 in chop.
Non-repainting zones: swings are confirmed after Structure Length bars, then used to build zones that extend forward (they don’t “teleport” later)
How it works (details)
*Structure confirmation
A swing high/low is only confirmed after Structure Length bars have elapsed; the dot is plotted back on the original bar using offset. Expect a confirmation delay of about Structure Length × timeframe.
*Zone creation
After a CHOCH/BOS (momentum shift / break of prior swing), TFZB draws the new Supply/Demand zone from the swing anchors and sets it active.
*Fib guide rails
Inside the active zone TFZB projects up to five Fib lines (defaults: 0.3 / 0.5 / 0.7) and extends them as time passes.
*Entry logic (with-trend only)
BUY: bar’s low ≤ fib and close > fib inside a bullish zone.
SELL: bar’s high ≥ fib and close < fib inside a bearish zone.
*Optionally restrict to one signal per zone to avoid over-trading.
(Optional) Aggressive confirm-bar entry
When do the swing dots print?
* The code confirms a swing only after `structureLen` bars have elapsed since that candidate high/low.
* On a 5-min chart with `structureLen = 10`, that’s about 50 minutes later.
* When the swing confirms, the script plots the dot back on the original bar (via `offset = -structureLen`). So you *see* the dot on the old bar, but it only appears on the chart once the confirming bar arrives.
> Practical takeaway: expect swing markers to appear roughly `structureLen × timeframe` later. Zones and signals are built from those confirmed swings.
Best timeframe for this Indicator
Use the timeframe that matches your holding period and the noise level of the instrument:
* Intraday :
* 5m or 15m are the sweet spots.
* Suggested `structureLen`:
* 5m: 10–14 (confirmation delay \~50–70 min)
* 15m: 8–10 (confirmation delay \~2–2.5 hours)
* Keep Entry Fib at 0.5 to start; try 0.3 in strong trends, 0.6 in chop.
* Tip: avoid the first 10–15 minutes after the open; let the initial volatility set the early structure.
* Swing/overnight:
* 1h or 4h.
* `structureLen`:
* 1h: 6–10 (6–10 hours confirmation)
* 4h: 5–8 (20–32 hours confirmation)
* 1m scalping: not recommended here—the confirmation lag relative to the noise makes zones less reliable.
Inputs (all groups)
Structure
• Show Swing Points (structureTog)
o Plots small dots on the bar where a swing point is confirmed (offset back by Structure Length).
• Structure Length (structureLen)
o Lookback used to confirm swing highs/lows and determine local structure. Higher = fewer, stronger swings; lower = more reactive.
Zones
• Show Last (zoneDispNum)
o Maximum number of zones kept on the chart when Display All Zones is off.
• Display All Zones (dispAll)
o If on, ignores Show Last and keeps all zones/levels.
• Zone Display (zoneFilter): Bullish Only / Bearish Only / Both
o Filters which zone types are drawn and eligible for signals.
• Clean Up Level Overlap (noOverlap)
o Prevents fib lines from overlapping when a new zone starts near the previous one (clamps line start/end times for readability).
Fib Levels
Each row controls whether a fib is drawn and how it looks:
• Toggle (f1Tog…f5Tog): Show/hide a given fib line.
• Level (f1Lvl…f5Lvl): Numeric ratio in . Defaults active: 0.3, 0.5, 0.7 (0 and 1 off by default).
• Line Style (f1Style…f5Style): Solid / Dashed / Dotted.
• Bull/Bear Colors (f#BullColor, f#BearColor): Per-fib color in bullish vs bearish zones.
Style
• Structure Color: Dot color for confirmed swing points.
• Bullish Zone Color / Bearish Zone Color: Rectangle fills (transparent by default).
Signals
• Entry Fib for Signals (entryFibSel): Choose 0.3, 0.5 (default), or 0.6 as the trigger line.
• Show Buy/Sell Signals (showSignals): Toggles triangle markers on/off.
• One Signal Per Zone (oneSignalPerZone): If on, suppresses additional entries within the same zone after the first trigger.
• Show Signal Text Labels (Bull/Bear + Fib) (showSignalLabels): Adds a small label next to each triangle showing zone bias and the fib used (e.g., BULL 0.5 or BEAR 0.3).
How TFZB decides signals
With trend only:
• BUY
1. Latest active zone is bullish.
2. Current bar’s close is inside the zone (between top and bottom).
3. The bar’s low ≤ selected fib and it closes > selected fib (bounce).
• SELL
1. Latest active zone is bearish.
2. Current bar’s close is inside the zone.
3. The bar’s high ≥ selected fib and it closes < selected fib.
Markers & labels
• BUY: triangle up below the bar; optional label “BULL 0.x” above it.
• SELL: triangle down above the bar; optional label “BEAR 0.x” below it.
Right-Panel Swing Log (Table)
What it is
A compact, auto-updating log of the most recent Swing High/Low events, printed in the top-right of the chart.
It helps you see when a pivot formed, when it was confirmed, and at what price—so you know the earliest bar a zone-based signal could have appeared.
Columns
Type – Swing High or Swing Low.
Date – Calendar date of the swing bar (follows the chart’s timezone).
Swing @ – Time of the original swing bar (where the dot is drawn).
Confirm @ – Time of the bar that confirmed that swing (≈ Structure Length × timeframe after the swing). This is also the earliest moment a new zone/entry can be considered.
Price – The swing price (high for SH, low for SL).
Why it’s useful
Clarity on repaint/confirmation: shows the natural delay between a swing forming and being usable—no guessing.
Planning & journaling: quick reference of today’s pivots and prices for notes/backtesting.
Scanning intraday: glance to see if you already have a confirmed zone (and therefore valid fib-bounce entries), or if you’re still waiting.
Context for signals: if a fib-bounce triangle appears before the time listed in Confirm @, it’s not a valid trade (you were too early).
Settings (Inputs → Logging)
Log swing times / Show table – turn the table on/off.
Rows to keep – how many recent entries to display.
Show labels on swing bar – optional tags on the chart (“Swing High 11:45”, “Confirm SH 14:15”) that match the table.
Recommended defaults
• Structure Length: 10–20 for intraday; 20–40 for swing.
• Entry Fib for Signals: 0.5 to start; try 0.3 in stronger trends and 0.6 in choppier markets.
• One Signal Per Zone: ON (prevents over trading).
• Zone Display: Both.
• Fib Lines: Keep 0.3/0.5/0.7 on; turn on 0 and 1 only if you need anchors.
Alerts
Two alert conditions are available:
• BUY signal – fires when a with trend bullish bounce at the selected fib occurs inside a bullish zone.
• SELL signal – fires when a with trend bearish bounce at the selected fib occurs inside a bearish zone.
Create alerts from the chart’s Alerts panel and select the desired condition. Use Once Per Bar Close to avoid intrabar flicker.
Notes & tips
• Swing dots are confirmed only after Structure Length bars, so they plot back in time; zones built from these confirmed swings do not repaint (though they extend as new bars form).
• If you don’t see a BUY where you expect one, check: (1) Is the active zone bullish? (2) Did the candle’s low actually pierce the selected fib and close above it? (3) Is One Signal Per Zone suppressing a second entry?
• You can hide visual clutter by reducing Show Last to 1–3 while keeping Display All Zones off.
Glossary
• CHOCH (Change of Character): A shift where price breaks beyond the last opposite swing while local momentum flips.
• BOS (Break of Structure): A cleaner break beyond the prior swing level in the current momentum direction.
• MSS: Either CHOCH or BOS – any event that spawns a new zone.
Extension ideas (optional)
• Add fib extensions (1.272 / 1.618) for target lines.
• Zone quality score using ATR normalization to filter weak impulses.
• HTF filter to only accept zones aligned with a higher timeframe trend.
⚠️ Disclaimer This script is provided for educational purposes only.
Past performance does not guarantee future results.
Trading involves risk, and users should exercise caution and use proper risk management when applying this strategy.
Volume Orderbook (Expo) — safe-indexed基于 @Zeiierman 的Volume Orderbook(Expo) 修复了以下bug
In 'array.get()' function. Index 3 is out of bounds, array size is 3.
at #main():75
修复思路:
提供一个索引钳制函数 clampIndex(idx, last),把任何索引限制在 区间内。
所有 array.get() 前都用该函数钳制索引(包括对 levels / volumes 的两端访问,以及 +1 时的上界保护)。
网格线、方框上下边界使用的 levels.get(...) 也统一钳制,避免负值或越界。
MSRanges📖 Market Structure with Ranges —
What this script does
This indicator highlights market structure on any symbol or timeframe. It automatically marks:
Swing points: Higher High (HH), Lower High (LH), Higher Low (HL), Lower Low (LL).
Break of Structure (BOS) and optional Change of Character (CHoCH) events.
Price ranges: each new swing label shows the difference from the last swing in price units (e.g. HH (54.8) or LL (-169.5)).
This lets you see at a glance whether the market is trending, consolidating, or shifting character.
How it works
Pivot detection
Uses TradingView’s ta.pivothigh / ta.pivotlow with a user-set Swing Length.
A pivot is confirmed only after the right-hand bars pass, so labels appear with a delay equal to Swing Length.
Swing classification
Each new pivot is compared with the previous pivot:
If a new high is higher than the last → HH.
If a new high is lower → LH.
If a new low is higher → HL.
If a new low is lower → LL.
Break of Structure (BOS)
A BOS is drawn when price closes (or wicks, depending on settings) beyond a previous swing.
The first BOS against trend can optionally be labelled CHoCH.
Range calculation
When a new swing is confirmed, the script prints the difference between that pivot and the previous swing.
Example: HL at 24,600 → HH at 24,655 → label shows HH (55).
Inputs & customization
Swing Length: bars left/right used to confirm pivots. Larger = fewer, more reliable swings; smaller = more signals, more noise.
BOS Confirmation: choose whether a BOS requires a full candle close or just a wick beyond the level.
Show CHoCH: toggle whether the first countertrend BOS is renamed CHoCH.
Show Swing Points: show/hide HH / LH / HL / LL labels.
BOS Style Settings: customize color, line style, and width.
How to use in practice
Trend identification:
Uptrend → repeating HL → HH sequence.
Downtrend → repeating LH → LL.
Breakout confirmation:
A BOS confirms continuation. Retests of BOS lines often act as support/resistance.
Reversal watch:
A CHoCH can signal possible trend shift. Wait for confirmation from price action or higher timeframe structure.
Range analysis:
The range numbers help compare move sizes. If swings shrink, market may be consolidating; if they expand, volatility is rising.
Best practices
Combine with higher timeframe analysis: use HTF trend, then refine entries on LTF.
Always confirm with other tools (volume, RSI, order flow) before trading.
Adjust Swing Length for the symbol and timeframe you trade.
Use risk management — never rely on a single indicator.
Technical notes
Pivots are not predictive — they appear only after confirmation. This avoids repainting but introduces lag.
Many labels/lines can impact chart performance; the script sets sensible max_labels_count and max_lines_count.
Designed for clarity, not signals. It does not issue buy/sell calls.
Disclaimer
This script is for educational purposes only . It is not financial advice and should not be used as a sole basis for trading decisions. Past performance of any method or indicator does not guarantee future results. Always test on demo accounts and apply proper risk management.
HTF Control Shift CandlesHTF Control Shift Candles highlights reversal-type candles that show a decisive shift in market control between buyers and sellers. These candles are detected by measuring wick length relative to the entire range and the close’s position within that range. A bullish control shift occurs when a candle forms with a long lower wick and closes in the top portion of its range, showing strong rejection of lower prices and a buyer takeover. A bearish control shift occurs when a candle forms with a long upper wick and closes in the bottom portion of its range, showing rejection of higher prices and a seller takeover. Candles are automatically recolored for fast visual recognition, and alerts are built in so traders never miss a potential shift in control.
This tool is specifically designed for 30-minute and higher timeframes, where control shift candles carry greater significance for swing and intraday setups. Inputs allow you to adjust wick percentage (wickPct) and body percentage (bodyPct) thresholds for different levels of sensitivity. For example, with wickPct = 0.5 and bodyPct = 0.3, a bullish control shift requires the lower wick to be at least 50% of the entire range and the close to finish in the top 30%. By tuning these values, traders can refine the detection for different volatility regimes or personal trading strategies.
Bar Close Confirmation Only
This indicator confirms signals only after the candle has closed. The calculation requires final values for open, high, low, and close, which are not fixed until the bar finishes forming. That means no mid-bar or intrabar repainting — alerts and highlights trigger only once the bar is complete. For example, if a candle temporarily has a long lower wick but closes back in the middle of its range, it will not be marked as a bullish control shift. This ensures accuracy by waiting for the final candle close before confirming that buyers or sellers truly maintained control.
Control shift candles can be especially useful around liquidity sweeps, support/resistance zones, or after extended moves, as they often mark key turning points. A bullish control shift near demand may provide an early entry confirmation for longs, while a bearish control shift at supply may signal short opportunities or exits from longs. This makes the indicator a versatile tool for anticipating reversals, timing entries with precision, and filtering signals on higher timeframes where market structure shifts are most impactful.
Global M2 (level / YoY) + correlation tableCalculates Global M2 with 11 weeks offset and then plots calculated Y-o-Y change of this M2. Inspired by GMI
MGG_FX//@version=5
indicator('MGG_FX', overlay=true, max_bars_back=1000, max_labels_count=500, max_lines_count=500, max_boxes_count=500)
var GRP1 = "ASIAN RANGE"
showLines = input(title='Show Lines', defval=true, group=GRP1)
showBackground = input(title='Show Background', defval=true, group=GRP1)
showMiddleLine = input(title='Show Middle Line', defval=true, group=GRP1)
extendLines = input(title='Extend Line', defval=true, group=GRP1)
rangeTime = input.session(title='Session Time', defval='1700-0100', group=GRP1)
extendTime = input.session(title='Extend Until', defval='0100-0500', group=GRP1)
linesWidth = input.int(1, 'Box And Lines Width', minval=1, maxval=4, group=GRP1)
boxLineColor = input(color.new(#434651,50), 'Box Line Color', group=GRP1)
middleLineColor = input(color.new(#434651,50), 'Middle Line Color', group=GRP1)
backgroundColor = input(color.new(#9598a1,90), 'Box Background Color', group=GRP1)
var GRP5 = "LONDON"
showLines4 = input(title='Show Lines', defval=true, group=GRP5)
showBackground4 = input(title='Show Background', defval=true, group=GRP5)
rangeTime4 = input.session(title='Session Time', defval='0300-0400', group=GRP5)
linesWidth4 = input.int(1, 'Box And Lines Width', minval=1, maxval=4, group=GRP5)
boxLineColor4 = input(color.new(#b2b5be, 95), 'Box Line Color', group=GRP5)
backgroundColor4 = input(color.new(#b2b5be, 90), 'Box Background Color', group=GRP5)
var GRP6 = "NEWYORK"
showLines5 = input(title='Show Lines', defval=true, group=GRP6)
showBackground5 = input(title='Show Background', defval=true, group=GRP6)
rangeTime5 = input.session(title='Session Time', defval='0900-1000', group=GRP6)
linesWidth5 = input.int(1, 'Box And Lines Width', minval=1, maxval=4, group=GRP6)
boxLineColor5 = input(color.new(#b2b5be, 95), 'Box Line Color', group=GRP6)
backgroundColor5 = input(color.new(#b2b5be, 90), 'Box Background Color', group=GRP6)
////////////////////////////////////////////
inSession = not na(time(timeframe.period, rangeTime))
inExtend = not na(time(timeframe.period, extendTime))
startTime = 0
startTime := inSession and not inSession ? time : startTime
//Box lines
var line lowHLine = na
var line topHLine = na
var line leftVLine = na
var line rightVLine = na
var line middleHLine = na
var box bgBox = na
var low_val = 0.0
var high_val = 0.0
if inSession and not inSession
low_val := low
high_val := high
high_val
// Plot lines
if inSession and timeframe.isintraday
if inSession
line.delete(lowHLine)
line.delete(topHLine)
line.delete(leftVLine)
line.delete(rightVLine)
line.delete(middleHLine)
box.delete(bgBox)
if low < low_val
low_val := low
low_val
if high > high_val
high_val := high
high_val
//Create Box
//x1, y1, x2, y2
if showBackground
bgBox := box.new(startTime, high_val, time, low_val, xloc=xloc.bar_time, bgcolor=backgroundColor, border_width=0)
if showLines
lowHLine := line.new(startTime, low_val, time, low_val, xloc=xloc.bar_time, color=boxLineColor, style=line.style_solid, width=linesWidth)
topHLine := line.new(startTime, high_val, time, high_val, xloc=xloc.bar_time, color=boxLineColor, style=line.style_solid, width=linesWidth)
leftVLine := line.new(startTime, high_val, startTime, low_val, xloc=xloc.bar_time, color=boxLineColor, style=line.style_solid, width=linesWidth)
rightVLine := line.new(time, high_val, time, low_val, xloc=xloc.bar_time, color=boxLineColor, style=line.style_solid, width=linesWidth)
//Create Middle line
if showMiddleLine
middleHLine := line.new(startTime, (high_val + low_val) / 2, time, (high_val + low_val) / 2, xloc=xloc.bar_time, color=middleLineColor, style=line.style_solid, width=linesWidth)
else
if inExtend and extendLines and not inSession and timeframe.isintraday
time1 = line.get_x1(lowHLine)
time2 = line.get_x2(lowHLine)
price = line.get_y1(lowHLine)
line.delete(lowHLine)
lowHLine := line.new(time1, price, time, price, xloc=xloc.bar_time, color=boxLineColor, style=line.style_solid, width=linesWidth)
time1 := line.get_x1(topHLine)
time2 := line.get_x2(topHLine)
price := line.get_y1(topHLine)
line.delete(topHLine)
topHLine := line.new(time1, price, time, price, xloc=xloc.bar_time, color=boxLineColor, style=line.style_solid, width=linesWidth)
time1 := line.get_x1(middleHLine)
time2 := line.get_x2(middleHLine)
price := line.get_y1(middleHLine)
line.delete(middleHLine)
middleHLine := line.new(time1, price, time, price, xloc=xloc.bar_time, color=middleLineColor, style=line.style_solid, width=linesWidth)
middleHLine
////////////////////////////////////////////
inSession4 = not na(time(timeframe.period, rangeTime4))
startTime4 = 0
startTime4 := inSession4 and not inSession4 ? time : startTime4
//Box lines
var line lowHLine4 = na
var line topHLine4 = na
var line leftVLine4 = na
var line rightVLine4 = na
var line middleHLine4 = na
var box bgBox4 = na
var low_val4 = 0.0
var high_val4 = 0.0
if inSession4 and not inSession4
low_val4 := low
high_val4 := high
high_val4
// Plot lines
if inSession4 and timeframe.isintraday
if inSession4
line.delete(lowHLine4)
line.delete(topHLine4)
line.delete(leftVLine4)
line.delete(rightVLine4)
line.delete(middleHLine4)
box.delete(bgBox4)
if low < low_val4
low_val4 := low
low_val4
if high > high_val4
high_val4 := high
high_val4
//Create Box
//x1, y1, x2, y2
if showBackground4
bgBox4 := box.new(startTime4, high_val4, time, low_val4, xloc=xloc.bar_time, bgcolor=backgroundColor4, border_width=0)
if showLines4
lowHLine4 := line.new(startTime4, low_val4, time, low_val4, xloc=xloc.bar_time, color=boxLineColor4, style=line.style_solid, width=linesWidth4)
topHLine4 := line.new(startTime4, high_val4, time, high_val4, xloc=xloc.bar_time, color=boxLineColor4, style=line.style_solid, width=linesWidth4)
leftVLine4 := line.new(startTime4, high_val4, startTime4, low_val4, xloc=xloc.bar_time, color=boxLineColor4, style=line.style_solid, width=linesWidth4)
rightVLine4 := line.new(time, high_val4, time, low_val4, xloc=xloc.bar_time, color=boxLineColor4, style=line.style_solid, width=linesWidth4)
////////////////////////////////////////////
inSession5 = not na(time(timeframe.period, rangeTime5))
startTime5 = 0
startTime5 := inSession5 and not inSession5 ? time : startTime5
//Box lines
var line lowHLine5 = na
var line topHLine5 = na
var line leftVLine5 = na
var line rightVLine5 = na
var line middleHLine5 = na
var box bgBox5 = na
var low_val5 = 0.0
var high_val5 = 0.0
if inSession5 and not inSession5
low_val5 := low
high_val5 := high
high_val5
// Plot lines
if inSession5 and timeframe.isintraday
if inSession5
line.delete(lowHLine5)
line.delete(topHLine5)
line.delete(leftVLine5)
line.delete(rightVLine5)
line.delete(middleHLine5)
box.delete(bgBox5)
if low < low_val5
low_val5 := low
low_val5
if high > high_val5
high_val5 := high
high_val5
//Create Box
//x1, y1, x2, y2
if showBackground5
bgBox5 := box.new(startTime5, high_val5, time, low_val5, xloc=xloc.bar_time, bgcolor=backgroundColor5, border_width=0)
if showLines5
lowHLine5 := line.new(startTime5, low_val5, time, low_val5, xloc=xloc.bar_time, color=boxLineColor5, style=line.style_solid, width=linesWidth5)
topHLine5 := line.new(startTime5, high_val5, time, high_val5, xloc=xloc.bar_time, color=boxLineColor5, style=line.style_solid, width=linesWidth5)
leftVLine5 := line.new(startTime5, high_val5, startTime5, low_val5, xloc=xloc.bar_time, color=boxLineColor5, style=line.style_solid, width=linesWidth5)
rightVLine5 := line.new(time, high_val5, time, low_val5, xloc=xloc.bar_time, color=boxLineColor5, style=line.style_solid, width=linesWidth5)
///////////////////////////////////////////////
//INPUTS
ffRange = input.session(title='Time: ', defval='0200-0201', inline='a', group='FF')
ffcolor = input.color(color.new(#b2b5be,20),title="Color:",inline="s_1",group="FF")
ffStyle = input.string(title="-", defval=line.style_solid, options= ,inline="s_1",group="FF")
mmm1Range = input.session(title='Time: ', defval='0430-0431', inline='a', group='MMM1')
mmm1color = input.color(color.new(#b2b5be,20),title="Color:",inline="s_1",group="MMM1")
mmm1Style = input.string(title="-", defval=line.style_solid, options= ,inline="s_1",group="MMM1")
mmm2Range = input.session(title='Time: ', defval='0630-0631', inline='a', group='MMM2')
mmm2color = input.color(color.new(#b2b5be,20),title="Color:",inline="s_1",group="MMM2")
mmm2Style = input.string(title="-", defval=line.style_solid, options= ,inline="s_1",group="MMM2")
mmm3Range = input.session(title='Time: ', defval='0800-0801', inline='a', group='MMM3')
mmm3color = input.color(color.new(#b2b5be,20),title="Color:",inline="s_1",group="mmm3")
mmm3Style = input.string(title="-", defval=line.style_solid, options= ,inline="s_1",group="MMM3")
lcRange = input.session(title='Time: ', defval='1100-1101', inline='a', group='LC')
lccolor = input.color(color.new(#b2b5be,20),title="Color:",inline="s_1",group="LC")
lcStyle = input.string(title="-", defval=line.style_solid, options= ,inline="s_1",group="LC")
//Plot lines
in_session_ff = time(timeframe.period, ffRange)
sessionffActive = in_session_ff and timeframe.multiplier <= 240
var line ff = na
if sessionffActive and sessionffActive == false
ff := line.new(bar_index,high+0.001,bar_index,low-0.001,color=ffcolor, style=ffStyle)
in_session_mmm1 = time(timeframe.period, mmm1Range)
sessionmmm1Active = in_session_mmm1 and timeframe.multiplier <= 240
var line mmm1 = na
if sessionmmm1Active and sessionmmm1Active == false
mmm1 := line.new(bar_index,high+0.001,bar_index,low-0.001,color=mmm1color, style=mmm1Style)
in_session_mmm2 = time(timeframe.period, mmm2Range)
sessionmmm2Active = in_session_mmm2 and timeframe.multiplier <= 240
var line mmm2 = na
if sessionmmm2Active and sessionmmm2Active == false
mmm2 := line.new(bar_index,high+0.001,bar_index,low-0.001,color=mmm2color, style=mmm2Style)
in_session_mmm3 = time(timeframe.period, mmm3Range)
sessionmmm3Active = in_session_mmm3 and timeframe.multiplier <= 240
var line mmm3 = na
if sessionmmm3Active and sessionmmm3Active == false
mmm3 := line.new(bar_index,high+0.001,bar_index,low-0.001,color=mmm3color, style=mmm3Style)
in_session_lc = time(timeframe.period, lcRange)
sessionlcActive = in_session_lc and timeframe.multiplier <= 240
var line lc = na
if sessionlcActive and sessionlcActive == false
lc := line.new(bar_index,high+0.001,bar_index,low-0.001,color=lccolor, style=lcStyle)
//////////////////////////////////////////////////////////////////////
// Inputs
var GRP10 = "Daily Open"
daily = input.string(title='View', defval='Daily Open', group=GRP10)
_offset = input.int(0, title='Offset', minval=0, maxval=2)
o_color = input.color(color.new(#000000, 0), "Open Color", inline="1", group = GRP10)
// FUNCTIONS
t = time
isNewbar = not na(t) and (na(t ) or t > t )
tfInMinutes(simple string tf = "") =>
float chartTf =
timeframe.multiplier * (
timeframe.isseconds ? 1. / 60 :
timeframe.isminutes ? 1. :
timeframe.isdaily ? 60. * 24 :
timeframe.isweekly ? 60. * 24 * 7 :
timeframe.ismonthly ? 60. * 24 * 30.4375 : na)
float result = tf == "" ? chartTf : request.security(syminfo.tickerid, tf, chartTf)
inTimeframe(_t) => tfInMinutes(_t) > tfInMinutes(timeframe.period)
// Range
reso(exp, res) => request.security(syminfo.tickerid, res, exp, lookahead=barmerge.lookahead_on)
getData(_t, _var) =>
o = reso(open , _t)
show = _var != "Off" and inTimeframe(_t)
_time = time(_t)
newbar = na(_time ) or _time > _time
oc = _var == 'Daily Open'
// ---------- Daily ----------
= getData("D", daily)
if d_newbar
if d_oc
line.new(x1=time, y1=d_o, x2=time_close("D"), y2=d_o, xloc=xloc.bar_time, style=line.style_dotted, color=o_color)
//-------------------- WATERMARK--------------------
////////////////////////////////////////////////////
//text inputs
title = input.string("JDVID_FX", "Tittle", group = "NICK NAME")
subtitle = input.string("𝗖𝗬𝗖𝗟𝗘 | 𝗧𝗜𝗠𝗜𝗡𝗚 | 𝗣𝗥𝗘𝗖𝗜𝗦𝗜𝗢𝗡", "Subtitle", group = "text")
//symbol info
symInfoCheck = input.bool(title="Show Symbol Info", defval=true, group = "watermark position")
symInfo = syminfo.ticker + " | " + timeframe.period + (timeframe.isminutes ? "M" : na)
date = str.format("{0}/{1}/{2}", dayofmonth(time_close), month(time_close), year(time_close))
//text positioning
textVPosition = input.string("top", "Vertical Position", options = , group = "watermark position")
textHPosition = input.string("center", "Horizontal Position", options = , group = "watermark position")
//symbol info positioning
symVPosition = input.string("bottom", "Vertical Position", options = , group = "symbol position")
symHPosition = input.string("center", "Horizontal Position", options = , group = "symbol position")
//cell size
cellWidthPercent = input.float(0, "Cell Width (%)", minval = 0, maxval = 100, tooltip = "The width of the cell as a % of the indicator's visual space. Optional. By default, auto-adjusts the width based on the text inside the cell. Value 0 has the same effect.", group = "cell size")
cellHeightPercent = input.float(0, "Cell Height (%)", minval = 0, maxval = 100, tooltip = "The height of the cell as a % of the indicator's visual space. Optional. By default, auto-adjusts the height based on the text inside of the cell. Value 0 has the same effect.", group = "cell size")
//title settings
c_title = input(color.new(color.black, 0), "Title Color", group = "title settings")
s_title = input.string("large", "Title Size", options = , group = "title settings")
a_title = input.string("center","Title Alignment", options = , group = "title settings")
//subtitle settings
c_subtitle = input(color.new(color.black, 30), "Subtitle Color", group = "subtitle settings")
s_subtitle = input.string("small", "Subtitle Size", options = , group = "subtitle settings")
a_subtitle = input.string("center","Subtitle Alignment", options = , group = "subtitle settings")
//symbol settings
c_symInfo = input(color.new(color.black, 30), "Subtitle Color", group = "symbol settings")
s_symInfo = input.string("normal", "Subtitle Size", options = , group = "symbol settings")
a_symInfo = input.string("center","Subtitle Alignment", options = , group = "symbol settings")
c_bg = input(color.new(color.blue, 100), "Background", group = "background")
//text watermark creation
var table textWatermark = table.new(textVPosition + "_" + textHPosition, 1, 3)
table.cell(textWatermark, 0, 0, title, width = cellWidthPercent, height = cellHeightPercent, text_color = c_title, text_halign = a_title, text_size = s_title, bgcolor = c_bg)
table.cell(textWatermark, 0, 1, subtitle, width = cellWidthPercent, height = cellHeightPercent, text_color = c_subtitle, text_halign = a_subtitle, text_size= s_subtitle, bgcolor = c_bg)
//symbol info watermark creation
var table symWatermark = table.new(symVPosition + "_" + symHPosition, 5, 5)
if symInfoCheck
table.cell(symWatermark, 0, 1, symInfo, width = cellWidthPercent, height = cellHeightPercent, text_color = c_symInfo, text_halign = a_symInfo, text_size = s_symInfo, bgcolor = c_bg)
table.cell(symWatermark, 0, 0, date, width = cellWidthPercent, height = cellHeightPercent, text_color = c_symInfo, text_halign = a_symInfo, text_size = s_symInfo, bgcolor = c_bg)
FVGFVG (Fair Value Gap) Indicator
The Fair Value Gap (FVG) indicator is a powerful tool designed to identify price imbalance zones that often act as critical support and resistance levels in the market. An FVG occurs when there is a gap between the high of one candle and the low of another candle two periods away, creating an unfilled price area that the market tends to revisit. These zones represent areas where institutional orders may be waiting and can provide high-probability trading opportunities.
This indicator automatically detects both bullish and bearish FVGs across any selected timeframe while ensuring complete reliability with no repainting. It uses only confirmed bar data with lookahead protection, making it suitable for live trading and backtesting. The tool features customizable visual elements including zone colors, transparency levels, and timeframe labels, along with automatic mitigation tracking that monitors when FVGs get filled by price action.
Key features include multi-timeframe analysis, extending zones to the right for ongoing relevance, flexible display options for both active and mitigated FVGs, and built-in alert system for new FVG formations. The indicator also provides comprehensive labeling options and maintains a clean chart by automatically managing the maximum number of displayed zones, making it an essential tool for traders following smart money concepts and institutional trading strategies.
Moving Average Convergence Divergence Zero LagMACD with zero lag. Implementation - double MACD on fast and slow timeframes before MACD on the difference between the two.
Buyer/Seller DominanceBuyer/Seller Dominance Indicator
The Buyer/Seller Dominance indicator is a sophisticated market analysis tool that combines Market Profile methodology with volume analysis to identify which side of the market is in control. It analyzes price distribution across a higher timeframe by calculating the Point of Control (POC) and Value Area, then evaluates where the current price sits relative to these key levels. The indicator processes Time Price Opportunity (TPO) data across 20 price channels to build a comprehensive volume profile of each trading session.
The dominance score is calculated using multiple factors including price position relative to POC, Value Area boundaries, volume imbalance between upper and lower profile sections, price momentum, and volume trends. This multi-factor approach provides a robust measure of market sentiment, smoothed using an EMA to filter out noise. The resulting dominance histogram visually represents whether buyers (positive values) or sellers (negative values) are controlling the market.
The indicator generates clear buy and sell signals when dominance crosses key threshold levels, with additional visual aids including background coloring to show market state (buyer/seller/neutral), overbought/oversold levels at ±50, and an information table displaying current market conditions. It's fully customizable with adjustable timeframes, sensitivity settings, Value Area percentages, and color schemes to suit different trading styles and preferences.RetryClaude can make mistakes. Please double-check responses.
ICT SMC — OB & FVG (Enhanced v6)This indicator is a comprehensive implementation of ICT Smart Money Concepts (SMC), focusing on Order Blocks (OB) and Fair Value Gaps (FVG) with enhanced detection logic and session-based filtering.
🔍 Key Features
Impulse-Based OB Detection: Identifies bullish and bearish order blocks using configurable impulse bar logic and ATR-based movement thresholds.
Fair Value Gap Detection: Highlights FVGs based on price displacement logic, helping traders spot potential inefficiencies in price action.
Session Filtering: Allows users to filter signals based on major trading sessions (Sydney, Tokyo, London, New York).
Trend & Volume Confirmation: Integrates EMA slope, market structure breaks, and volume analysis to score trade signals.
Visual Zones: Displays OB and FVG zones using colored boxes with customizable transparency and color settings.
Signal Alerts: Generates long/short trade signals based on a scoring system and session validation, with built-in alert conditions.
⚙️ Customization
Adjustable EMA and ATR lengths
Configurable impulse bar count and movement thresholds
Toggleable session filters
Custom colors for OB and FVG zones
📈 Use Cases
This tool is ideal for traders who follow ICT concepts and want a visual, automated way to identify high-probability zones and trade setups based on smart money principles.
MultiTF break lines (1H / 15M / 5M / 1M) - with tableThis indicator detects high and low breakouts on the most recent candlesticks on the 1-hour, 15-minute, 5-minute, and 1-minute timeframes.
It automatically draws breakout lines on the chart.
The breakout direction is displayed as an arrow label (⇧/⇩).
The most recent breakout direction is displayed in a table (top right).
This is a multi-timeframe breakout monitoring tool.
Upward breakouts are visually distinguishable by blue, and downward breakouts by red.
Gamma Exposure Levels by OMG (Oh My Gamma)OMG (Oh My Gamma) - Daily GEX Levels
An operational framework for Gamma analysis with daily data.
Indicator's Purpose & Demo Data
This indicator plots key strategic levels derived from Gamma Exposure (GEX) analysis. It showcases the operational logic of OhMyGamma analytical engine.
IMPORTANT: The levels plotted by this public script are based on a past date's snapshot for demonstration purposes. They are not valid for live trading and will not update automatically.
The real edge comes from using the fresh data structure provided daily.
How to Read the Levels
This indicator is designed to provide actionable intelligence, not just data. Here's how to read it:
The Levels: Each line represents a key strategic zone (Zero Gamma, Call/Put Walls, etc.) where a market reaction is statistically probable due to dealer hedging flows.
Line Thickness = Strategic Importance: The thickness of each line directly corresponds to its strategic rating. Thicker, solid lines represent higher-conviction zones.
Labels & Tooltips: Hover over a level's label on your chart to see its full description, confluences, and strategic rating.
Pro Tip: The Power of Confluence
This indicator is not a standalone "system". It's an institutional-grade intelligence layer. Its predictive power increases exponentially when used to find confluence with your own analysis.
The highest-probability trades occur when a key Gamma level aligns with:
Price Action: Key support/resistance zones, order blocks, or liquidity pools.
Volumetric Indicators: High/Low Volume Nodes (HVN/LVN) from Volume Profile, VWAP, and Anchored VWAP.
Use these levels to confirm your setups and gain the conviction to act.
How to Get the Daily Updated Script
This indicator requires a new Pine Script code each day to load the current session's data.
To get the daily updated code feel free to visit www.ohmygamma.com
Feedback & Suggestions
This tool is built for the community. Suggestions for improvements and new features are highly welcome and help the project evolve. Feel free to get in touch via the contact form on the website.
Disclaimer: This tool is for informational and educational purposes only. Trading involves significant risk. The authors assume no responsibility for any trading decisions.
LA - Opening Price based Previous day Range PivotThis "LA - Opening Price based Previous day Range Pivot" indicator is a custom technical analysis tool designed for Trading View charts. It plots support and resistance levels (often referred to as pivots or ranges) based on the current opening price combined with the previous period's trading range. The "previous period" can be daily, weekly, or monthly, making it a multi-timeframe tool. These levels are projected using Fibonacci-inspired multipliers to create potential breakout or reversal zones.
The core idea is inspired by concepts like the Opening Range Breakout (ORB) strategy or Fibonacci pivots, but it's customized here to use a dynamic range calculation (the maximum of several absolute price differences) rather than a simple high-low range. This makes it more robust for volatile markets. Levels are symmetric above (resistance) and below (support) the opening price, helping traders identify potential entry/exit points, stop-losses, or targets. This will be useful when there is a gap-up/down as in Nifty/Sensex .
Purpose of the Indicator:
To visualize potential support/resistance zones for the current trading session based on the opening price and historical range data. This helps traders anticipate price movements, such as breakouts above resistance or bounces off support
Use Cases:
Intraday Trading: On lower timeframes (e.g., 5-min or 15-min charts), it shows daily levels for short-term trades.
Swing Trading: On higher timeframes (e.g., hourly or daily), it displays weekly/monthly levels for longer holds.
Range Identification: The filled bands highlight "zones" where price might consolidate or reverse.
Conditional Display: Levels only appear on appropriate timeframes (e.g., daily levels on intraday charts <60min), preventing clutter.
Theoretical Basis: It builds on pivot point theory, where the opening price acts as a central pivot. Multipliers (e.g., 0.618 for Fibonacci golden ratio) project levels, assuming price often respects these ratios due to market psychology.
How Calculations Work
Let's dive into the math with examples. Assume a stock with:
Current daily open (cdo) = $100
Previous daily high (pdh) = $105, low (pdl) = $95, close (pdc) = $102, close 2 days ago (pdc2) = $98
Step 1: Dynamic Range Calculation (var_d2):
This is the max of:
|pdh - pdc2| = |105 - 98| = 7
|pdl - pdc2| = |95 - 98| = 3
|pdh - pdl| = |105 - 95| = 10 (previous day range)
|pdh - cdo| = |105 - 100| = 5
|pdl - cdo| = |95 - 100| = 5
|pdc - cdo| = |102 - 100| = 2
|pdc2 - cdo| = |98 - 100| = 2
Max = 10 (so range = 10). This ensures the range accounts for gaps and extended moves, not just high-low.
Step 2: Level Projections:
Resistance (above open): Open + (Range * Multiplier)
dre6 = 100 + (10 * 1.5) = 115
dre5 = 100 + (10 * 1.27) ≈ 112.7
... down to dre0 = 100 + (10 * 0.1) = 101
dre50 = 100 + (10 * 0.5) = 105 (midpoint)
Support (below open): Open - (Range * Multiplier)
dsu0 = 100 - (10 * 0.1) = 99
... up to dsu6 = 100 - (10 * 1.5) = 85
Without Indicator
With Indicator
Pros and Cons
Pros:
Multi-Timeframe Flexibility: Seamlessly integrates daily, weekly, and monthly levels, useful for aligning short-term trades with longer trends (e.g., intraday breakout confirmed by weekly support).
Dynamic Range Calculation: Unlike standard pivots (just (H+L+C)/3), it uses max of multiple diffs, capturing gaps/volatility better—great for stocks with overnight moves.
Customizable via Inputs: Users can toggle levels, adjust multipliers, or change timeframes without editing code. Inline inputs keep the UI clean.
Visual Aids: Filled bands make zones obvious; conditional colors highlight "tight" vs. "wide" ranges (e.g., for volatility assessment).
Fibonacci Integration: Levels based on proven ratios, appealing to technical traders. Symmetric supports/resistances simplify strategy building (e.g., buy at support, sell at resistance).
No Repainting: Uses historical data with lookahead, so levels are fixed once calculated—reliable for back-testing.
Cons:
Chart Clutter: With all toggles on, 50+ plots/fills can overwhelm the chart, especially on mobile or small screens. Requires manual disabling.
Complexity for Beginners: Many inputs and calculations; without understanding fib ratios or range logic, it might confuse new users.
Performance Overhead: On low timeframes (e.g., 1-min), fetching higher TF data multiple times could lag, especially with many symbols or back-tests.
Assumes Volatility Persistence: Relies on previous range projecting future moves; in low-vol markets (e.g., sideways trends), levels may be irrelevant or too wide/narrow.
No Alerts or Signals: Purely visual; no built-in buy/sell alerts or crossover conditions—users must add separately.
Hardcoded Styles/Colors: Limited customization without code edits (e.g., can't change line styles via inputs).
Also, not optimized for non-stock assets (e.g., forex with 24/7 trading).
In summary, this is a versatile pivot tool for range-based trading based on Opening price, excelling in volatile markets but requiring some setup. If you're using it, start with defaults on a daily chart and toggle off unnecessary levels.
M Killzones[by vetrivel]Cool free style Session indicator, Inspired by TJR trader session times and it's easily changeable. Really this session times changes everything. Basic requirement to use this Discipline and Mindset
FVG + FIBONACCIThe FVG + FIBONACCI indicator is a sophisticated trading tool that combines Fair Value Gap (FVG) detection with Fibonacci analysis across multiple timeframes. It automatically identifies bullish and bearish Fair Value Gaps - price areas where there is no overlap between consecutive candles, creating "gaps" that often act as significant support and resistance zones. The indicator works on any selected higher timeframe while displaying results on the current chart, making it versatile for various trading strategies and timeframe analyses.
What sets this indicator apart is its integration of Fibonacci retracement levels within each detected FVG zone. Once a Fair Value Gap is identified, the indicator automatically draws key Fibonacci levels (23.6%, 38.2%, 50%, 61.8%, and optionally 78.6%) within the gap, providing precise entry and exit points for traders. Additionally, it offers Fibonacci extensions (127.2%, 161.8%, and 261.8%) that project potential price targets beyond the FVG boundaries, helping traders plan their profit-taking strategies more effectively.
The indicator includes comprehensive customization options, allowing users to control the appearance of FVG zones, Fibonacci levels, and extension lines with different colors and styles. It features intelligent zone management with configurable maximum counts and extension lengths, automatic validity checking that grays out filled gaps, and multiple alert conditions for when price enters FVG zones or touches Fibonacci levels. The tool is designed for both swing and intraday traders who want to combine the powerful concepts of Fair Value Gaps with precise Fibonacci-based entry and exit strategies.
Trend TraderThe Trend Trader indicator is a trend-following tool based on a triple EMA (Exponential Moving Average) setup designed to help traders identify market direction and potential reversal zones. It plots three customizable EMAs on the chart to highlight bullish and bearish momentum, then generates trade signals when price shows a strong likelihood of continuing in the direction of the prevailing trend.
EMA Alignment: The indicator checks for bullish stacking (fast EMA above medium, medium above slow) and bearish stacking (fast EMA below medium, medium below slow). This alignment defines the prevailing market trend.
Trend Validation: A user-defined lookback period ensures signals are only taken if the market recently displayed a stacked trend, thus filtering false entries during consolidations.
Signal Generation: Buy signals appear when price dips into the zone between the fast and medium EMAs during a bullish trend. Sell signals appear when price rallies into the zone between the fast and medium EMAs during a bearish trend.
Alerts: Built-in alerts notify traders of new trade opportunities without having to constantly watch the chart.
This indicator is suitable for swing trading and intraday strategies across multiple markets, including forex, stocks, indices, and crypto.
Suggested Strategy for Profitability
This tool is best used as part of a structured trend-trading plan. Below is a suggested framework:
Entry Rules
Long (Buy Trade):
Confirm that EMA alignment is bullish (EMA1 > EMA2 > EMA3).
Wait for a Buy Signal (triangle up below price).
Ensure the higher timeframe (e.g., 4H if trading 1H) trend is also bullish to filter trades.
Short (Sell Trade):
Confirm EMA alignment is bearish (EMA1 < EMA2 < EMA3).
Wait for a Sell Signal (triangle down above price).
Higher timeframe should also be bearish to increase probability.
Stop Loss
For long positions, place the stop loss just below EMA3 or the most recent swing low.
For short positions, place the stop loss just above EMA3 or the most recent swing high.
Take Profit
Conservative: Set TP at 1.5x to 2x the stop loss distance.
Aggressive: Trail stop loss below EMA2 (for longs) or above EMA2 (for shorts) to capture larger trends.
Risk Management
Use no more than 1–2% of account risk per trade.
Trade only when the signal aligns with overall market context (higher timeframe, support/resistance, or volume confirmation).
This indicator is very similar to the indicator "Trend Scalper" by the same developer, the difference is this indicator is used to just find the trade and hold the trade or to find the reversal of a trend instead of triggering alerts every time price enters between EMA1 and EMA2.
Price Action [False Break+BreakOut] This indicator is designed to analyze Price Action with a focus on identifying Pivot Points and detecting Breakout and False Break signals.
Key Features:
Pivot Point Detection
Identifies Pivot High and Pivot Low points
Classifies Pivot Points into:
Higher High (HH)
Lower High (LH)
Higher Low (HL)
Lower Low (LL)
Visual Display Options
Pivot point markers (triangles)
Price values at pivot points
Support/Resistance level lines
Fractal Chaos Channel display
Average of Pivot High/Low
False Break Detection
Detects False Break signals
Customizable validation period (1-10 bars)
Option to include candle shadows in engulfing detection
Displays "FalseB!!" labels when detected
Color-coded signals (red for false break up, green for false break down)
Breakout Signals
Shows Breakout (⬆️) and Breakdown (⬇️) signals
Alert conditions for all signal types
Tracks recent breakout/breakdown levels
Main Configuration Settings:
Source data and length parameters for pivot detection
Selective display of different pivot types
Maximum bars to display
Support/Resistance level extension length
Text size customization
Technical Implementation:
Uses ta.pivothigh() and ta.pivotlow() for pivot detection
Implements bar counting for level persistence
Engulfing pattern detection for false breaks
Color-coded visual elements (teal for HH/HL, red for LH/LL)
Comprehensive alert system
Usage:
This indicator is ideal for traders using Price Action strategies, helping to identify trend reversal points, key Support/Resistance levels, and potential genuine/false breakout signals for better trade entries and exits.
OBV Cloud v1.0 [PriceBlance]🌐 English
OBV Cloud v1.0 – Free & Open-Source
OBV Cloud v1.0 integrates On-Balance Volume (OBV) with a Cloud model and enhanced trend filters.
It helps traders quickly identify:
Money Flow Trend: OBV Cloud acts as a dynamic support/resistance zone.
Trend Filters: EMA9 (short-term) and WMA45 (medium-term) directly applied on OBV.
OBV–Price Divergence: Detects both regular and hidden bullish/bearish divergences.
Trend Strength: Measured with ADX calculated on OBV.
OBV Cloud is suitable for both swing and day trading, allowing traders to spot breakouts, reversals, or sustained trends through volume-based analysis.