Hyperfork Matrix🔱 Hyperfork Matrix 🔱 A manual Andrews Pitchfork tool with action/reaction propagation lines and lattice matrix functionality. This indicator extends Dr. Alan Andrews' and Patrick Mikula's median line methodology by automating the projection of reaction and action lines at equidistant intervals, creating a time-price grid that highlights where pivot levels intersect the matrix.
Three pitchfork variants are supported: Original, Schiff, and Modified Schiff. Each variant adjusts the anchor point position to accommodate different trend angles.
═══════════════════════════════════════════════════════════════
█ THE METHOD
Andrews Pitchfork
Dr. Alan Andrews developed the pitchfork as a trend channel tool. The core principle: price tends to return to the median line roughly 80% of the time. When it fails to reach the median, a reversal may be developing.
A pitchfork requires three pivot points:
• Point A — The anchor (starting pivot)
• Point B — First swing in the opposite direction
• Point C — Second swing, same direction as A
The median line runs from Point A through the midpoint of B-C. Parallel lines through B and C form the channel boundaries.
Action/Reaction Principle
Based on Newton's third law ("action and reaction are equal and opposite"), this principle suggests that price movements elicit proportional reactions in the future. By projecting lines at equal intervals along the pitchfork's slope, we anticipate where these reactions may occur.
Lattice Matrix
The lattice squares pivot price levels to the matrix structure. A horizontal from your selected pivot intersects the pitchfork and propagation lines, with verticals drawn at each intersection. These verticals mark time points where price-time geometry converges—potential areas to watch for trend changes.
═══════════════════════════════════════════════════════════════
█ HOW THE INDICATOR WORKS
This section explains the calculation flow from your inputs to the final drawing.
Step 1 — Pivot Selection
You click on the chart to select three timestamps. The indicator retrieves the high or low price at each timestamp based on your starting pivot type selection:
• Starting with "Low" creates a Low-High-Low pattern
• Starting with "High" creates a High-Low-High pattern
Step 2 — Anchor Calculation
The anchor position depends on your pitchfork variant:
• Original — Anchor stays at Point A
• Schiff — Anchor shifts 50% toward B in price (Y-axis only)
• Modified Schiff — Anchor shifts 50% toward B in both time and price
Step 3 — Median Line
A line is drawn from the anchor through the midpoint of the B-C segment. This median line defines the channel's slope and center.
Step 4 — Parallel Tines
Parallel lines are drawn through Points B and C, maintaining the median line's slope. These form the upper and lower channel boundaries.
Step 5 — Extra Parallels
If configured, additional parallel lines are drawn at equal spacing beyond B and C. The spacing equals the distance from the median to each tine.
Step 6 — Handle Length
The "handle" is the segment from the anchor to the B-C midpoint. This length becomes the unit of measurement for propagation.
Step 7 — Propagation Points
Points are placed along the median line at handle-length intervals:
• Forward points extend into the future
• Backward points extend into the past
Step 8 — Reaction Lines
Through each propagation point, a line is drawn parallel to B-C (the transversal slope). These reaction lines mark time-price zones based on the original swing rhythm, where trend changes may occur.
Step 9 — Action Lines
Through each propagation point, a line is drawn parallel to A-B (the initial move slope). These action lines project the original momentum into future price zones.
Step 10 — Lattice Grid
If enabled, a horizontal line is drawn at the price level of your selected pivot. Vertical lines are then drawn at every intersection between this horizontal and the selected line type (pitchfork, reaction, or action lines).
Step 11 — Alert Monitoring
On each bar, the indicator checks if the price has crossed any of the drawn lines. Crossings trigger alerts based on your configuration.
═══════════════════════════════════════════════════════════════
█ PITCHFORK VARIANTS
Original (Andrews)
The classic pitchfork. The anchor remains at Point A. Best suited for strong trending markets where price respects steep channels.
Schiff
Named after Jerome Schiff, a student of Andrews. The anchor shifts halfway toward Point B in price only—same time position as A, but price is the midpoint of A and B.
This produces a less steep channel, better suited for:
• Shallow trends
• Corrective phases
• Markets where the original pitchfork angle is too aggressive
Modified Schiff
The anchor shifts halfway toward Point B in both time and price—positioned at the midpoint of the A-B segment.
This creates an even gentler slope than the standard Schiff variant. Use when:
• Trends are weak or ranging
• Price doesn't respect steeper channel angles
• You need a middle ground between Original and Schiff
═══════════════════════════════════════════════════════════════
█ ACTION & REACTION LINES
Reaction Lines
These run parallel to the B-C segment (the "transversal"). They represent the market's response rhythm—the swing from B to C sets a pattern that may repeat at predictable intervals.
Action Lines
These run parallel to the A-B segment (the initial impulse). They project the original momentum forward, suggesting where similar price movements may begin or end.
Forward vs Backward
• Forward Lines — Project into the future beyond the B-C midpoint
• Backward Lines — Project into the past before Point A
Most analysis focuses on forward lines, but backward lines can reveal historical confluence with past pivots.
Propagation Spacing
Lines are spaced at equal intervals defined by the handle length (anchor to B-C midpoint). This creates a rhythmic structure where each segment equals the original pitchfork's core measurement.
Action Lines
Reaction Lines
Extra Parallels with/ both Action & Reactions Line extended within the grid
═══════════════════════════════════════════════════════════════
█ LATTICE MATRIX
The lattice creates a grid overlay within the pitchfork structure.
Horizontal Line
A horizontal line is drawn at the price level of your selected pivot (A, B, or C). This squares the pivot's price level to find where it aligns with the matrix structure. These confluences may represent higher-probability reaction points in time.
Vertical Lines
Vertical lines are drawn at every point where the horizontal intersects your selected line source. These verticals mark time points—potential areas to watch for trend changes.
• Pitchfork & Parallels — Intersections with median and all parallel tines
• Action Lines — Intersections with action transversals
• Reaction Lines — Intersections with reaction transversals
• Action & Reaction — Both types combined
Envelope Clamping
Lattice lines are automatically clamped to stay within the pitchfork's channel envelope (bounded by the outermost parallels). This keeps the grid visually clean and focused on relevant areas.
═══════════════════════════════════════════════════════════════
█ ALERTS
The indicator monitors price crossings and triggers alerts when the price moves through any drawn line type.
Available Alert Types
• Pitchfork Lines — Crossing the median or any parallel
• Action Lines — Crossing any action transversal (when action lines are drawn)
• Reaction Lines — Crossing any reaction transversal (when reaction lines are drawn)
• Lattice Horizontal — Crossing the horizontal price level (when lattice is enabled)
• Any Line Crossing — Combined alert for all of the above
Setting Up Alerts
1. Right-click on the indicator or use the alert menu
2. Select "Create Alert."
3. Choose the desired condition from the dropdown
4. Configure notification preferences (pop-up, email, webhook, etc.)
Alert Timing
Alerts trigger once per bar close when a crossing is detected between the previous and current bar's close prices.
═══════════════════════════════════════════════════════════════
█ HOW TO USE
Basic Setup
1. Add the indicator to your chart
2. When prompted, click on three pivot points in sequence: A, B, C
3. Choose starting pivot type: Auto (detects pattern), Low (LHL), or High (HLH)
4. The pitchfork draws automatically
Adjusting the Pitchfork
• Change the variant (Original/Schiff/Modified Schiff) if the angle doesn't suit your trend
• Add extra parallel levels to see where price might react beyond the main channel
• Disable or Adjust price range min/max to hide parallels outside your focus area
Adding Propagation Lines
• Adjust forward offset to add/remove lines beyond auto-extend (0 = to current bar)
• Choose which line types to display: Reaction Only, Action Only, or Both
• Customize colors to distinguish line types visually
Using the Lattice
• Enable "Draw Lattice" in the Lattice settings group
• Select which pivot's price level to use for the horizontal
• Choose the intersection source that matches your analysis style
• Look for time zones where verticals cluster—these may be significant dates
Log Scale Charts
If your chart uses logarithmic scale, enable "Logarithmic Scale" in Pitchfork Settings. This ensures all calculations transform correctly for log price axes.
═══════════════════════════════════════════════════════════════
█ SETTINGS REFERENCE
1. Pivot Points
• Starting Pivot Type — Auto (detect pattern), Low (force LHL), or High (force HLH)
• Pivot A/B/C Time — Timestamps for your three pivots (click to select)
• Show Pivot Labels — Display A, B, C labels at pivot locations
• Pivot Colors — Customize high/low label colors
• Label Size — Tiny, Small, Normal, or Large
2. Pitchfork Settings
• Logarithmic Scale — Enable for log charts
• Pitchfork Type — Original, Schiff, or Modified Schiff
• Extra Parallel Levels — Additional parallels beyond B and C
• Line styling (color, width, style)
• Extend Direction — Right only or Both directions
• Enable Price Range Filter — Toggle filtering of extra parallels
• Price Range Min/Max — Hide extra parallels outside this range
3. Action / Reaction Lines
• Draw Type — None, Reaction Only, Action Only, or Both
• Forward Lines Offset — Adjust from auto-extend (0 = to current bar, positive adds more)
• Backward Lines Count — Number of lines projected before Point A
• Separate styling for reaction and action lines
4. Lattice
• Draw Lattice — Master toggle
• Select Pivot for Horizontal — A, B, or C price level
• Intersection Source — Which lines to use for vertical placement
• Lattice styling
═══════════════════════════════════════════════════════════════
█ LIMITATIONS
• Maximum 500 lines — TradingView limits line objects; complex setups with many parallels and propagation lines may approach this limit
• Manual pivot selection — Pivots must be selected manually via timestamp inputs; no auto-detection
• Log scale requires toggle — You must enable "Logarithmic Scale" manually if your chart uses log axes
• Minor visual drift — Action/Reaction lines may shift slightly when toggling between odd and even extra parallel counts (cosmetic only)
• Backward lines visibility — When adding backward propagation lines, you may need to scroll the chart left for them to render
═══════════════════════════════════════════════════════════════
█ FURTHER READING
For deeper study of pitchfork analysis and action/reaction methodology:
• Patrick Mikula's "The Best Trendline Methods of Alan Andrews and Five New Trendline Techniques"
No affiliation implied. Referenced for educational context only.
═══════════════════════════════════════════════════════════════
█ RELATED
For a video walkthrough of the Super Pitchfork methodology that inspired this indicator:
How to Build a Super Pitchfork with Reaction & Trigger Lines
This tutorial covers manual pitchfork construction, reaction line projection, and timing techniques.
樞軸點和水平
SVE Pivot Points v5//@version=6
indicator(title="SVE Pivot Points", overlay=true, max_lines_count=500)
// Input Parameters
agg_period = input.timeframe("D", title="Aggregation period")
show_labels = input.bool(true, title="Show Labels")
line_width = input.int(1, title="Line Width", minval=1, maxval=4)
// Detect new aggregation period
bool new_agg_bar = bool(ta.change(time(agg_period)))
// Calculate how many chart bars fit in one aggregation period
get_bars_in_period(string tf) =>
tf_secs = timeframe.in_seconds(tf)
chart_secs = timeframe.in_seconds(timeframe.period)
// If aggregation period is smaller than or equal to chart timeframe, use 1 bar
// Otherwise calculate how many chart bars fit
math.max(1, int(math.ceil(tf_secs / chart_secs)))
bars_in_period = get_bars_in_period(agg_period)
// Fetch previous period's high, low, close
ph = request.security(syminfo.tickerid, agg_period, high , barmerge.gaps_off, barmerge.lookahead_on)
pl = request.security(syminfo.tickerid, agg_period, low , barmerge.gaps_off, barmerge.lookahead_on)
pc = request.security(syminfo.tickerid, agg_period, close , barmerge.gaps_off, barmerge.lookahead_on)
// Calculate pivot points
pp = (ph + pl + pc) / 3
r1 = 2 * pp - pl
r2 = pp + (ph - pl)
r3 = 2 * pp + (ph - 2 * pl)
s1 = 2 * pp - ph
s2 = pp - (ph - pl)
s3 = 2 * pp - (2 * ph - pl)
// Calculate mean levels
r1m = (pp + r1) / 2
r2m = (r1 + r2) / 2
r3m = (r2 + r3) / 2
s1m = (pp + s1) / 2
s2m = (s1 + s2) / 2
s3m = (s2 + s3) / 2
// Previous high and low
hh = ph
ll = pl
// Colors
color_r = color.red
color_s = color.green
color_pp = color.blue
color_hl = color.gray
// Arrays to store historical lines (for showing past periods)
var line lines_r3 = array.new_line()
var line lines_r3m = array.new_line()
var line lines_r2 = array.new_line()
var line lines_r2m = array.new_line()
var line lines_r1 = array.new_line()
var line lines_r1m = array.new_line()
var line lines_hh = array.new_line()
var line lines_pp = array.new_line()
var line lines_ll = array.new_line()
var line lines_s1m = array.new_line()
var line lines_s1 = array.new_line()
var line lines_s2m = array.new_line()
var line lines_s2 = array.new_line()
var line lines_s3m = array.new_line()
var line lines_s3 = array.new_line()
// Current period labels (only show for current period)
var label lbl_r3 = na
var label lbl_r3m = na
var label lbl_r2 = na
var label lbl_r2m = na
var label lbl_r1 = na
var label lbl_r1m = na
var label lbl_hh = na
var label lbl_pp = na
var label lbl_ll = na
var label lbl_s1m = na
var label lbl_s1 = na
var label lbl_s2m = na
var label lbl_s2 = na
var label lbl_s3m = na
var label lbl_s3 = na
// Track current period start
var int current_period_start = 0
// On new aggregation period, create new lines
if new_agg_bar
current_period_start := bar_index
// Create lines for this period - they start here and will be extended
array.push(lines_r3, line.new(bar_index, r3, bar_index + bars_in_period, r3, color=color_r, width=line_width))
array.push(lines_r3m, line.new(bar_index, r3m, bar_index + bars_in_period, r3m, color=color_r, width=line_width))
array.push(lines_r2, line.new(bar_index, r2, bar_index + bars_in_period, r2, color=color_r, width=line_width))
array.push(lines_r2m, line.new(bar_index, r2m, bar_index + bars_in_period, r2m, color=color_r, width=line_width))
array.push(lines_r1, line.new(bar_index, r1, bar_index + bars_in_period, r1, color=color_r, width=line_width))
array.push(lines_r1m, line.new(bar_index, r1m, bar_index + bars_in_period, r1m, color=color_r, width=line_width))
array.push(lines_hh, line.new(bar_index, hh, bar_index + bars_in_period, hh, color=color_hl, width=line_width))
array.push(lines_pp, line.new(bar_index, pp, bar_index + bars_in_period, pp, color=color_pp, width=line_width))
array.push(lines_ll, line.new(bar_index, ll, bar_index + bars_in_period, ll, color=color_hl, width=line_width))
array.push(lines_s1m, line.new(bar_index, s1m, bar_index + bars_in_period, s1m, color=color_s, width=line_width))
array.push(lines_s1, line.new(bar_index, s1, bar_index + bars_in_period, s1, color=color_s, width=line_width))
array.push(lines_s2m, line.new(bar_index, s2m, bar_index + bars_in_period, s2m, color=color_s, width=line_width))
array.push(lines_s2, line.new(bar_index, s2, bar_index + bars_in_period, s2, color=color_s, width=line_width))
array.push(lines_s3m, line.new(bar_index, s3m, bar_index + bars_in_period, s3m, color=color_s, width=line_width))
array.push(lines_s3, line.new(bar_index, s3, bar_index + bars_in_period, s3, color=color_s, width=line_width))
// Delete old labels and create new ones
if show_labels
label.delete(lbl_r3)
label.delete(lbl_r3m)
label.delete(lbl_r2)
label.delete(lbl_r2m)
label.delete(lbl_r1)
label.delete(lbl_r1m)
label.delete(lbl_hh)
label.delete(lbl_pp)
label.delete(lbl_ll)
label.delete(lbl_s1m)
label.delete(lbl_s1)
label.delete(lbl_s2m)
label.delete(lbl_s2)
label.delete(lbl_s3m)
label.delete(lbl_s3)
lbl_r3 := label.new(bar_index + bars_in_period, r3, "R3", style=label.style_label_left, color=color.new(color_r, 100), textcolor=color_r, size=size.small)
lbl_r3m := label.new(bar_index + bars_in_period, r3m, "R3M", style=label.style_label_left, color=color.new(color_r, 100), textcolor=color_r, size=size.small)
lbl_r2 := label.new(bar_index + bars_in_period, r2, "R2", style=label.style_label_left, color=color.new(color_r, 100), textcolor=color_r, size=size.small)
lbl_r2m := label.new(bar_index + bars_in_period, r2m, "R2M", style=label.style_label_left, color=color.new(color_r, 100), textcolor=color_r, size=size.small)
lbl_r1 := label.new(bar_index + bars_in_period, r1, "R1", style=label.style_label_left, color=color.new(color_r, 100), textcolor=color_r, size=size.small)
lbl_r1m := label.new(bar_index + bars_in_period, r1m, "R1M", style=label.style_label_left, color=color.new(color_r, 100), textcolor=color_r, size=size.small)
lbl_hh := label.new(bar_index + bars_in_period, hh, "HH", style=label.style_label_left, color=color.new(color_hl, 100), textcolor=color_hl, size=size.small)
lbl_pp := label.new(bar_index + bars_in_period, pp, "PP", style=label.style_label_left, color=color.new(color_pp, 100), textcolor=color_pp, size=size.small)
lbl_ll := label.new(bar_index + bars_in_period, ll, "LL", style=label.style_label_left, color=color.new(color_hl, 100), textcolor=color_hl, size=size.small)
lbl_s1m := label.new(bar_index + bars_in_period, s1m, "S1M", style=label.style_label_left, color=color.new(color_s, 100), textcolor=color_s, size=size.small)
lbl_s1 := label.new(bar_index + bars_in_period, s1, "S1", style=label.style_label_left, color=color.new(color_s, 100), textcolor=color_s, size=size.small)
lbl_s2m := label.new(bar_index + bars_in_period, s2m, "S2M", style=label.style_label_left, color=color.new(color_s, 100), textcolor=color_s, size=size.small)
lbl_s2 := label.new(bar_index + bars_in_period, s2, "S2", style=label.style_label_left, color=color.new(color_s, 100), textcolor=color_s, size=size.small)
lbl_s3m := label.new(bar_index + bars_in_period, s3m, "S3M", style=label.style_label_left, color=color.new(color_s, 100), textcolor=color_s, size=size.small)
lbl_s3 := label.new(bar_index + bars_in_period, s3, "S3", style=label.style_label_left, color=color.new(color_s, 100), textcolor=color_s, size=size.small)
// On the last bar, update the current period's lines to extend properly into the future
if barstate.islast and array.size(lines_pp) > 0
// Get the most recent lines
line last_r3 = array.get(lines_r3, array.size(lines_r3) - 1)
line last_r3m = array.get(lines_r3m, array.size(lines_r3m) - 1)
line last_r2 = array.get(lines_r2, array.size(lines_r2) - 1)
line last_r2m = array.get(lines_r2m, array.size(lines_r2m) - 1)
line last_r1 = array.get(lines_r1, array.size(lines_r1) - 1)
line last_r1m = array.get(lines_r1m, array.size(lines_r1m) - 1)
line last_hh = array.get(lines_hh, array.size(lines_hh) - 1)
line last_pp = array.get(lines_pp, array.size(lines_pp) - 1)
line last_ll = array.get(lines_ll, array.size(lines_ll) - 1)
line last_s1m = array.get(lines_s1m, array.size(lines_s1m) - 1)
line last_s1 = array.get(lines_s1, array.size(lines_s1) - 1)
line last_s2m = array.get(lines_s2m, array.size(lines_s2m) - 1)
line last_s2 = array.get(lines_s2, array.size(lines_s2) - 1)
line last_s3m = array.get(lines_s3m, array.size(lines_s3m) - 1)
line last_s3 = array.get(lines_s3, array.size(lines_s3) - 1)
// Calculate end point: period start + bars in period
int end_bar = current_period_start + bars_in_period
// Update line endpoints
line.set_x2(last_r3, end_bar)
line.set_x2(last_r3m, end_bar)
line.set_x2(last_r2, end_bar)
line.set_x2(last_r2m, end_bar)
line.set_x2(last_r1, end_bar)
line.set_x2(last_r1m, end_bar)
line.set_x2(last_hh, end_bar)
line.set_x2(last_pp, end_bar)
line.set_x2(last_ll, end_bar)
line.set_x2(last_s1m, end_bar)
line.set_x2(last_s1, end_bar)
line.set_x2(last_s2m, end_bar)
line.set_x2(last_s2, end_bar)
line.set_x2(last_s3m, end_bar)
line.set_x2(last_s3, end_bar)
// Update label positions
if show_labels
label.set_x(lbl_r3, end_bar)
label.set_x(lbl_r3m, end_bar)
label.set_x(lbl_r2, end_bar)
label.set_x(lbl_r2m, end_bar)
label.set_x(lbl_r1, end_bar)
label.set_x(lbl_r1m, end_bar)
label.set_x(lbl_hh, end_bar)
label.set_x(lbl_pp, end_bar)
label.set_x(lbl_ll, end_bar)
label.set_x(lbl_s1m, end_bar)
label.set_x(lbl_s1, end_bar)
label.set_x(lbl_s2m, end_bar)
label.set_x(lbl_s2, end_bar)
label.set_x(lbl_s3m, end_bar)
label.set_x(lbl_s3, end_bar)
// Limit array sizes to prevent memory issues (keep last 100 periods)
max_lines = 100
if array.size(lines_pp) > max_lines
line.delete(array.shift(lines_r3))
line.delete(array.shift(lines_r3m))
line.delete(array.shift(lines_r2))
line.delete(array.shift(lines_r2m))
line.delete(array.shift(lines_r1))
line.delete(array.shift(lines_r1m))
line.delete(array.shift(lines_hh))
line.delete(array.shift(lines_pp))
line.delete(array.shift(lines_ll))
line.delete(array.shift(lines_s1m))
line.delete(array.shift(lines_s1))
line.delete(array.shift(lines_s2m))
line.delete(array.shift(lines_s2))
line.delete(array.shift(lines_s3m))
line.delete(array.shift(lines_s3))
Pinks333 Level Confirmation ODTEJust the beta test. This script was created to help me determine when specific levels are being accepted on a short term basis for the purpose of trading ODTE SPX contracts
SVE Pivot Points (v2) //@version=6
indicator(title="SVE Pivot Points", overlay=true, max_lines_count=500)
// Input Parameters
agg_period = input.timeframe("D", title="Aggregation period")
extend_bars = input.int(50, title="Bars to extend into future", minval=1, maxval=500)
show_labels = input.bool(true, title="Show Labels")
// Line width
line_width = input.int(1, title="Line Width", minval=1, maxval=4)
// Detect new aggregation period
bool new_agg_bar = bool(ta.change(time(agg_period)))
// Fetch previous period's high, low, close
ph = request.security(syminfo.tickerid, agg_period, high , barmerge.gaps_off, barmerge.lookahead_on)
pl = request.security(syminfo.tickerid, agg_period, low , barmerge.gaps_off, barmerge.lookahead_on)
pc = request.security(syminfo.tickerid, agg_period, close , barmerge.gaps_off, barmerge.lookahead_on)
// Calculate pivot points
pp = (ph + pl + pc) / 3
r1 = 2 * pp - pl
r2 = pp + (ph - pl)
r3 = 2 * pp + (ph - 2 * pl)
s1 = 2 * pp - ph
s2 = pp - (ph - pl)
s3 = 2 * pp - (2 * ph - pl)
// Calculate mean levels
r1m = (pp + r1) / 2
r2m = (r1 + r2) / 2
r3m = (r2 + r3) / 2
s1m = (pp + s1) / 2
s2m = (s1 + s2) / 2
s3m = (s2 + s3) / 2
// Previous high and low
hh = ph
ll = pl
// Colors
color_r = color.red
color_s = color.green
color_pp = color.blue
color_hl = color.gray
// Persistent line variables
var line line_r3 = na
var line line_r3m = na
var line line_r2 = na
var line line_r2m = na
var line line_r1 = na
var line line_r1m = na
var line line_hh = na
var line line_pp = na
var line line_ll = na
var line line_s1m = na
var line line_s1 = na
var line line_s2m = na
var line line_s2 = na
var line line_s3m = na
var line line_s3 = na
// Persistent label variables
var label lbl_r3 = na
var label lbl_r3m = na
var label lbl_r2 = na
var label lbl_r2m = na
var label lbl_r1 = na
var label lbl_r1m = na
var label lbl_hh = na
var label lbl_pp = na
var label lbl_ll = na
var label lbl_s1m = na
var label lbl_s1 = na
var label lbl_s2m = na
var label lbl_s2 = na
var label lbl_s3m = na
var label lbl_s3 = na
// Function to create or update line
create_line(line ln, float price, color col) =>
line.new(bar_index, price, bar_index + extend_bars, price, color=col, width=line_width)
// Function to create label
create_label(float price, string txt, color col) =>
label.new(bar_index + extend_bars, price, txt, style=label.style_label_left, color=color.new(col, 90), textcolor=col, size=size.small)
// On new aggregation period, delete old lines and create new ones
if new_agg_bar
// Delete old lines
line.delete(line_r3)
line.delete(line_r3m)
line.delete(line_r2)
line.delete(line_r2m)
line.delete(line_r1)
line.delete(line_r1m)
line.delete(line_hh)
line.delete(line_pp)
line.delete(line_ll)
line.delete(line_s1m)
line.delete(line_s1)
line.delete(line_s2m)
line.delete(line_s2)
line.delete(line_s3m)
line.delete(line_s3)
// Delete old labels
if show_labels
label.delete(lbl_r3)
label.delete(lbl_r3m)
label.delete(lbl_r2)
label.delete(lbl_r2m)
label.delete(lbl_r1)
label.delete(lbl_r1m)
label.delete(lbl_hh)
l
1337 v1.4 [Abrhm]In the center of the circle, there lies a small, perfectly smooth stone, unlike any natural rock. It's as if it's been shaped by hands long ago, though no one can recall who might have carved it. Every time you try to focus on it, the stone seems to shimmer and shift, just out of the corner of your eye. Some say it's an artifact from a lost civilization, others believe it’s a relic from another world entirely. {0}
Holy Grail - Value Zone Reversion ModelThis indicator is currently in BETA and is designed to highlight one of the most important intraday reference levels: the New York Midnight Open.
The yellow horizontal lines mark the exact 00:00 (NY time) opening price, giving traders a clear institutional benchmark that price frequently reacts to during the London and New York sessions. This level can be used as a directional bias, mean reversion reference, or key reaction zone.
At this stage, the script is focused solely on the Midnight Open logic to ensure accuracy, consistency, and correct New York time handling across all timeframes.
🚧 Roadmap / Future Updates
Once development is complete, additional features will be added, such as:
More session-based opening levels
Expanded market structure references
Optional confluence tools and filters
Customization and visual enhancements
This script is actively being improved, and updates will be rolled out as features are finalized.
⚠️ Risk Disclaimer
This indicator is provided for educational and informational purposes only and does not constitute financial advice, investment recommendations, or trade signals. Trading financial markets involves significant risk and may result in the loss of all invested capital. Past performance is not indicative of future results.
Users are solely responsible for their trading decisions and risk management. Always test strategies thoroughly and consult a licensed financial professional before making live trading decisions.
Support & Resistance with MA Ribbons LITE Support & Resistance with MA Ribbon LITE
Overview
Support & Resistance with MA Ribbon LITE is a technical analysis indicator for TradingView that combines a flexible Moving Average (MA) Ribbon with a dynamic Support & Resistance (S/R) system.
The indicator is designed as a visual decision-support tool, allowing traders to evaluate trend structure, momentum context, and key price reaction zones within a single, uncluttered chart overlay.
This script is published as open source under the Mozilla Public License 2.0 , encouraging transparency, learning, and community-driven development.
Core Components
1. Moving Average Ribbon System
The MA Ribbon consists of two configurable moving averages (Fast and Slow) with multiple calculation and smoothing options, including:
EMA, SMA, WMA, VWMA
DEMA, TEMA, Zero-Lag EMA
Hull MA, Linear Regression MA
Super Smoother, Smoothed MA, Laguerre MA
Key features include:
Trend-aware ribbon fill (bullish / bearish)
Optional candle coloring aligned with ribbon state
Minute-based anchor timeframe logic for consistent trend structure
Optional MA cross, swing, and continuation markers
Alert support for MA-related events
The MA Ribbon is intended to provide trend context , not standalone trade signals.
2. Support & Resistance Engine
The Support & Resistance system is based on pivot structure analysis and dynamically adapts to new price data.
Features include:
Main and strong support/resistance levels
Up to 12 active levels displayed on the chart
Preset sensitivities (Scalp, Intraday, Swing) and custom configuration
Optional multi-timeframe (MTF) level detection
Adaptive labels with automatic contrast handling
Optional strength filtering based on historical interactions
Optional heat map visualization reflecting level interaction frequency
All levels are plotted directly on the price chart for immediate contextual reference.
Alert System
The script includes a configurable alert framework covering:
Main and strong level touches
Breakouts and breakdowns
Retests of broken levels
Optional rejection detection (wick beyond a level with close back inside)
Cooldown logic to limit repeated alerts in consolidation phases
Alerts are informational only and should always be confirmed visually.
Customization & Performance
Unified color presets (Classic, Aqua, Cosmic, Ember, Neon, Custom)
Independent opacity control for MA Ribbon and candles
Modular on/off controls for MA Ribbon and S/R components
Optimized plotting to remain within TradingView limits
Designed for stable performance across lower and higher timeframes
Intended Use
This indicator is designed to assist with chart interpretation and market structure analysis. It may help users:
Identify prevailing trend conditions
Observe price behavior around structurally relevant levels
Combine trend context with horizontal market structure
Reduce chart clutter by consolidating multiple concepts into one script
This indicator is not a trading strategy, does not provide financial advice, and should be used alongside independent analysis and appropriate risk management.
How to Use
1. Chart Setup
Add the indicator to any chart and timeframe.
Both the MA Ribbon and Support & Resistance systems are enabled by default and can be managed independently via the Master Controls section.
General guidance:
Higher timeframes for structural context
Lower timeframes for execution and refinement
Applicable across different markets and instruments
2. Using the MA Ribbon
The MA Ribbon visualizes trend direction and momentum context.
General interpretation:
Price above both MAs → bullish bias
Price below both MAs → bearish bias
Ribbon color reflects trend alignment
Ribbon compression may indicate consolidation or transition
Optional features include candle coloring, MA cross markers, and filtered continuation arrows.
Best practice:
Use the MA Ribbon to identify the market regime before reacting to support or resistance levels.
MA Ribbon – Minute-Based Timeframe Logic
Anchor Timeframe (Minutes)
Anchors MA calculations to a fixed timeframe expressed in minutes.
Examples:
60 = 1 hour
240 = 4 hours
0 = use current chart timeframe
How It Works
The anchor automatically scales MA lengths so that the same trend structure is preserved across different chart timeframes.
Example (Anchor = 60):
5-minute chart → follows 1-hour structure
15-minute chart → follows the same 1-hour structure
1-hour chart → standard calculation
Show Ribbon Only If Chart TF > Anchor
Optionally hides the MA Ribbon on chart timeframes lower than the anchor to reduce visual noise.
3. Using Support & Resistance Levels
Support and resistance levels are derived from pivot structures and update dynamically.
Level types:
Main Support / Resistance (most recent and relevant)
Strong Support / Resistance (confirmed pivots)
Additional historical levels (up to 12 total)
Usage guidelines:
Focus on price behavior around levels rather than exact prices
Combine level reactions with MA Ribbon trend context
Use strength filtering to reduce weaker levels
Heat map mode highlights frequently interacted zones
4. Combining Trend and Structure
The indicator is most effective when both systems are used together:
In uptrends, focus on reactions near support
In downtrends, focus on reactions near resistance
Breakouts are more relevant when aligned with trend context
Retests gain importance when structure and trend agree
Customization Tips
Use preset sensitivities (Scalp / Intraday / Swing) for quick setup
Enable MTF S/R to reference higher-timeframe structure
Adjust label size, offset, and precision for readability
Disable unused components to improve performance on lower-end systems
This combined view helps improve contextual clarity and reduce noise.
5. Alerts Usage
Alerts are optional and fully configurable.
Cooldown settings can be used to limit repeated notifications during ranging conditions.
All alerts are informational and should be visually validated.
Open Source & Credits
This script is released as open source under the Mozilla Public License 2.0.
Parts of the MA Ribbon logic and conceptual inspiration are derived from publicly shared work by JustUncleL on TradingView.
Respect and thanks are extended for these contributions.
You are free to:
Study the code
Modify it for personal use
Share improvements under the same license terms
Disclaimer
This indicator is provided for educational and informational purposes only.
No guarantees are made regarding accuracy, performance, or outcomes.
Use at your own discretion.
Fibonacci Sequence Grid [BigBeluga]🔵 OVERVIEW
A geometric price mapping tool that projects Fibonacci sequence levels and grid structures from recent price swings to help traders visualize natural expansion and reversion zones.
This indicator overlays Fibonacci-based structures directly on the chart, utilizing both grid projections and horizontal levels based on the classic Fibonacci integer sequence (0, 1, 1, 2, 3, 5, 8, ...). It identifies recent swing highs or lows and builds precision-aligned levels based on the trend direction.
🔵 CONCEPTS
Uses the Fibonacci integer sequence (not ratios) to define distances from the most recent swing point.
Identifies a trend based on EMA cross of fast and slow periods.
Projects two types of Fibonacci tools:
A grid projection from the swing point, displaying multiple sloped levels based on the sequence.
A set of horizontal Fibonacci levels for clean structural references.
Levels can be plotted from either swing low or high depending on the current trend direction.
Adjustable “Size” inputs control spacing between levels for better price alignment.
Lookback period defines how far the script searches for recent swing extremes.
🔵 FEATURES
Fibonacci Grid Projection:
Draws two mirrored Fibonacci grids—one expanding away from the swing high/low, the other converging toward price.
Swing-Based Trend Detection:
Uses a fast/slow EMA crossover to determine trend direction and reference swing points for projections.
Fibonacci Sequence Levels:
Displays horizontal levels based on the Fibonacci number sequence (0, 1, 2, 3, 5, 8, 13, 21...) for natural price targets.
Dynamic Labels and Coloring:
Each level is labeled with its sequence value and colored based on trend direction (e.g., red = downtrend, green = uptrend).
Both grids and levels can be toggled on/off independently.
Sizing controls allow tighter or looser clustering of levels depending on chart scale.
🔵 HOW TO USE
Enable Fibonacci Grid to visualize price expansion zones during impulsive trends.
Use Fibonacci Levels as horizontal support/resistance or target zones.
A label below price means the current trend is up and levels are projected from swing low.
A label above price means trend is down and levels are projected from swing high.
Adjust “Size” input to fit grid/level projection to your preferred chart scale or instrument volatility.
Use in confluence with price action, trend indicators, or volume tools for layered trading decisions.
🔵 CONCLUSION
Fibonacci Sequence Grid reimagines Fibonacci analysis using whole-number spacing from natural math progressions. Whether used for projecting grid-based expansions or horizontal support/resistance zones, it provides a powerful and intuitive structure to trade within. Perfect for traders who rely on symmetry, market geometry, and mathematically consistent levels.
Volume Dynamic Liquidity BandsThis indicator visualizes liquidity zones on the chart by detecting areas where high-volume trading occurred. It combines volume analysis with price action to identify significant liquidity levels that traders and market makers are likely watching.
15M Swing Structure & Retracement Algo (RB Trading)This script is an intraday structure analysis tool designed to map swing behavior retracement zones and projected extensions on the fifteen minute chart. It is purpose built for EUR/USD GBP/CAD and USD/CAD and is not intended for other markets or timeframes.
The tool highlights mathematically derived retracement areas after confirmed swing formations to help traders evaluate structure rather than predict direction.
Intended Use
✓ Timeframe fifteen minute only
✓ Markets EUR/USD GBP/CAD USD/CAD
✓ Style intraday swing structure analysis
✓ Best during London and New York sessions
✓ Not designed for Asia session conditions
Core Logic
✓ Swing highs and lows detected using a configurable lookback
✓ Trend context defined by 50 and 200 EMA relationship
✓ Swing range measured between most recent confirmed pivots
✓ Key retracement zone calculated between 50 and 61.8 percent
✓ Extension reference levels projected beyond the swing range
Visual Output
✓ Swing connection line marking the measured range
✓ Retracement zone shading when price enters the 50 to 61.8 area
✓ Extension reference levels at 161.8 200 and 261.8
✓ Color coding reflects structural context
• Green for bullish structure
• Red for bearish structure
Using RB Trading DeM Bars for Confirmation
For additional confirmation users can combine this script with the free RB Trading DeM Bars indicator.
✓ The DeM Bars appear as a histogram at the bottom of the chart
✓ Best used to assess pullback quality into the retracement zone
✓ Ideal confirmation occurs when momentum fades during the pullback
✓ Expansion in momentum as price exits the zone supports continuation
The DeM Bars are not a signal tool on their own. They are designed to confirm exhaustion or reacceleration as price interacts with the structural retracement area.
Why Fifteen Minute
The calculations are calibrated for intraday behavior on the fifteen minute chart. Higher timeframes develop structure too slowly for active evaluation. Lower timeframes introduce excess noise and reduce swing reliability.
Structure Interpretation
Bullish structure
✓ 50 EMA above 200 EMA
✓ Retracements measured from swing high
✓ Extensions projected higher
Bearish structure
✓ 50 EMA below 200 EMA
✓ Retracements measured from swing low
✓ Extensions projected lower
The script reflects current structure only. It does not determine trade direction or outcome.
Inputs
✓ EMA lengths adjustable
✓ Swing lookback sensitivity
✓ Optional display toggles for zones lines and labels
✓ Reference level buffer for spread or volatility awareness
Important Notes
This tool analyzes historical price structure only. It does not provide entry signals predictions or guarantees. All levels are mathematical projections based on past price action and may or may not be respected in future movement.
Educational use only. Proper risk management is required. Test thoroughly before live application.
RB Trading
Opening Range {basic}Introduction
Opening range {basic} is a clean and reliable indicator designed to help traders visualize the opening range of a trading session with minimal setup and visual clutter.
This version focuses on the core components of opening range analysis, making it ideal for traders who want a simple, effective framework for identifying early-session structure across futures, forex and crypto markets.
Description
The indicator automatically calculates the opening range high, low and midpoint over a user-defined opening window (5m, 15m, 30m or 60m) within a selected trading session (default: NY session).
During the opening range window, the indicator dynamically tracks price to form the range. Once the opening range is complete, the high, low and midpoint are extended forward for the remainder of the session, providing clear reference levels that can be used for bias, mean reversion or breakout-based decision making.
A shaded fill highlights the opening range area, with an optional size display showing the total range in price units. Styling and logic are intentionally simplified to keep the chart clean and easy to interpret.
Features
Configurable opening range length
Choose between 5m, 15m, 30m or 60m opening ranges.
Session-based calculation
Opening range is calculated only within the selected trading session.
Opening range levels
Opening range high, low and midpoint.
Range fill & size display
Shaded fill between the opening range high and low.
Text showing total opening range size.
Clean, minimal design
Fixed line styles and thickness for clarity.
Dark and light theme support.
Minimal settings for fast, intuitive use.
Optimized performance
Designed for intraday timeframes compatible with the selected opening range length.
Terms & Conditions
This indicator is provided for educational and informational purposes only and does not constitute financial advice.
Trading involves risk and past performance is not indicative of future results.
The user assumes full responsibility for any trading decisions made using this indicator.
Sessions & Key Levels {basic}Introduction
Sessions & Key Levels {basic} is a streamlined key level indicator designed to provide traders with clear visual structure around intraday trading sessions and essential higher timeframe reference levels.
The {basic} version focuses on the most commonly used session and price levels, helping traders identify important areas of interest without overwhelming the chart. It is ideal for traders who want a clean, reliable framework for session-based and timeframe-based analysis.
Description
The indicator plots the Asia, London and New York trading sessions directly on the chart, including session boxes and key session levels. Session highs and lows update dynamically while the session is active, providing real-time context as price develops.
In addition to session levels, the indicator includes current and previous period levels from a single configurable timeframe. These levels highlight important open, high, low and midpoint references that are frequently respected by price and commonly used for intraday bias, structure and trade planning.
The {basic} version is designed to remain visually minimal, with fixed styling and simplified settings, making it easy to use straight out of the box.
Features
Global session windows
Asia, London and New York sessions.
Custom session times.
Session boxes with adaptive highs and lows.
Session levels
Open, high, low and midpoint per session.
Automatically updates during active sessions.
Clean, consistent labelling.
Previous period levels
One configurable timeframe.
Open, high, low and midpoint of the prior period.
Useful for daily or intraday reference levels.
Current period levels
Tracks live open, high, low and midpoint of the selected timeframe.
Updates dynamically as the timeframe progresses.
Simplified design
Fixed line styles and colors for clarity.
Dark and light theme support.
Minimal settings for ease of use.
Terms & Conditions
This indicator is provided for educational and informational purposes only and does not constitute financial advice.
Trading involves risk and past performance is not indicative of future results.
The user assumes full responsibility for any trading decisions made using this indicator.
MADD Monkey Pro MKDx Generation 1 Leg & Zone Mapping EngineMADD Monkey Pro MKDx G1
Function: Generation 1 Leg & Zone Mapping Engine
MKDx is a market-structure driven projection tool that maps a tradable “leg” and converts it into a high-probability entry zone, then builds a complete trade projection with Entry (Blue), Stop Loss (Orange), and Take Profit (Green). It is designed to help you see clean trade locations based on trend alignment, price action confirmation, and internal scoring filters—without forcing you to trade blindly.
MKDx QUICK START
Begin by opening MKDx and checking the Status Panel. If it says SCANNING, the engine is actively searching for a valid setup. As it scans, watch for the standby triangles (approach markers): a triangle up indicates an Incoming Long Position, while a triangle down indicates an Incoming Short Position, and the Status Panel will also display Incoming Long Position or Incoming Short Position to match what’s detected on the chart. When an incoming setup appears, you can prepare your MT5 order levels for manual execution using the indicated price markings: the Blue label is the Entry (EN) level, Green is the Take Profit (TP) level, and Orange is the Stop Loss (SL) level. Wait for confirmation of entry, because a position is only considered active once price actually touches EN—at that point, the Status Panel will switch to Long Position or Short Position. From there, MKDx maintains the position status until TP Hit or SL Hit appears. If the setup never enters, you may see No Trade (unfilled/pending) and/or EX (setup expired). Optionally, you can use MKDx alerts (subscription feature) to get notified when these key state changes occur.
BEST PRACTICES AND EXPECTATIONS
Use demo first and calibrate MKDx based on your symbol’s typical spread and volatility, your lot sizing, and your personal risk appetite. MKDx is not a guaranteed signal machine—treat it as a high-structure trade mapper that provides repeatable zones and consistent EN/SL/TP logic. For best results, combine it with session awareness (Asia/London/NY), your higher-timeframe directional bias, and your own execution rules such as spread filtering and volatility controls.
NOTES AND LIMITATIONS
Closed bars are not repainted, but leg and zone definitions can change as structure develops. This is expected behavior for any structure-based approach. All arrows, zones and counts are context tools only. They are not trade recommendations or performance guarantees. Past behavior of any configuration does not imply similar results in the future.
RISK DISCLAIMER
This script is provided for informational and educational purposes only. It does not constitute financial advice or a recommendation to buy or sell any financial instrument. Trading and investing involve significant risk, and you can lose more than your initial investment. Past performance and historical behavior do not guarantee future results. By using Madd Monkey Pro MKDx G1, you accept full responsibility for your own trading decisions and outcomes. The author is not liable for any loss or damage arising from the use of this script.
[ShoshiTrades] HTF Levels HTF Levels is a clean, lightweight multi-timeframe HTF level marker that automatically plots key “reaction” levels from 4H / Daily / Weekly / Monthly candles directly on your chart.
> What is an “HTF Level” in this script?
In this indicator, an HTF Level is created on a direction flip (pivot) between two consecutive higher-timeframe candles:
If an HTF candle is bullish and the next HTF candle turns bearish, the level is marked at the pivot boundary where the bullish candle’s Close meets the next candle’s Open (these two prices are effectively the same boundary in that flip).
If an HTF candle is bearish and the next HTF candle turns bullish, the level is marked at the pivot boundary where the bearish candle’s Close meets the next candle’s Open.
So practically: the script draws a level at the HTF Open of the “new” candle right when the
HTF flip happens — which corresponds to the Close/Open pivot boundary between the two candles.
> What it does
Plots 4H, Daily, Weekly, Monthly levels on any timeframe chart
Levels extend to the right until they get tapped, then stop extending
Optional Tapped Levels styling (separate style/color/width for tapped levels)
Optional Multilevel merge: when multiple HTF levels are close to each other, they can be stacked into one “cluster” with a combined label (helps reduce clutter)
> Why it’s useful
HTF open-based levels often act like “magnets” where price reacts, rejects, or re-tests. This indicator helps you quickly see where higher timeframe structure is sitting without drawing levels manually.
> Key settings
4H / Daily / Weekly / Monthly: enable/disable + style controls
Tapped Levels: toggle + “Use Original Line Style” option
Multilevel:
- Minimum Count (how many merged items are required for “strong” cluster styling)
- Range % (merge distance threshold)
- Offset (how far labels are pushed to the right)
> Notes
Designed to be fast and minimal, with a focus on readability. Areas where multiple HTF levels merge into a single cluster often behave like “magnets” and can attract price reactions, re-tests, or rejections. Works best when used as a context tool (structure + reaction zones), not as a standalone trading system.
© ShoshiTrades
Sultan Gold Levels (SMC, Sessions & Structure)This indicator is a comprehensive "Smart Money Concepts" (SMC) and Market Structure suite designed to declutter charts by combining multiple technical analysis tools into a single, cohesive overlay.
Instead of using separate indicators for Sessions, Market Structure, and Fibonacci levels, this script integrates them to help traders identify "Confluence" areas—specifically where structural levels align with session opens or psychological price points.
█ HOW IT WORKS & CALCULATIONS
1. Market Structure (BOS / CHoCH):
The script utilizes a Pivot High/Low algorithm (user-defined length, default 5) to identify structural points (HH, LL, LH, HL).
- Break of Structure (BOS): Triggered when price closes beyond a previous pivot. The script includes a "Real vs. Fake" validation filter.
- Validation Logic: A "Real" BOS requires the candle body to close past the level with specific volume and displacement thresholds (ATR based). Wicks piercing a level are marked as "Fake" or weak breaks.
2. Order Blocks (OB) & FVG:
- Order Blocks are identified by analyzing the last opposing candle before a significant move that breaks structure. The script filters these based on a volume/ATR strength multiplier to ensure only significant institutional candles are highlighted.
- Mitigation: The script automatically removes Order Blocks once price has revisited (mitigated) them, keeping the chart clean.
3. Session Ranges:
The script tracks and plots the Highs and Lows of major trading sessions (Asian, London, New York).
- Logic: It uses `time()` functions to capture the highest and lowest points during specific UTC hours. These levels often act as liquidity pools for the subsequent session.
4. Fibonacci & Liquidity:
- Auto-Fibonacci: Automatically anchors to the most recent significant swing high/low sequence to project retracement levels (specifically the 50% and 61.8% "Golden Pocket").
- Liquidity: Detects "Equal Highs" (EQH) and "Equal Lows" (EQL) by comparing adjacent pivot points within a percentage threshold (0.15% default), highlighting areas where stop-losses may reside.
█ FEATURES
- Multi-Timeframe Dashboard: Displays trend bias (D1, H4, H1) and current session status.
- Previous Day/Week/Month Levels: Auto-plots PDH/PDL, PWH/PWL as static support/resistance lines.
- Psychological Levels: Auto-plots round numbers (e.g., xx00, xx50).
- Customizable Alerts: Alerts for BOS, OB formation, and level touches.
█ SETTINGS
- Structure Length: Adjusts the sensitivity of the pivot detection.
- Session Times: Fully customizable time inputs for Asia/London/NY.
- Styling: Toggle specific elements (like Sessions or FVGs) on/off to suit your trading style.
█ CREDITS
This script utilizes standard Smart Money Concept theories widely discussed in the technical analysis community. The pivot detection logic is based on standard high/low comparisons common in Pine Script open-source libraries.
Camarilla Pivots with signalsThis script plots camarilla levels, S5,S4,S3, P, R3, R4, R5. This script looks for reversals off of all support/resistance levels. A signal is generated on the 5 minute if we tap the level and get a close back below.
ICT Premium & Discount ZonesICT Premium & Discount Zones
Visualize key market zones with precision using the ICT Premium / Discount Zones indicator. This tool highlights areas of Premium (overbought), Equilibrium (balanced), and Discount (oversold) based on previous daily, weekly, and monthly price ranges, helping traders identify high-probability zones for entries, exits, and risk management.
Features:
- Premium, Equilibrium, and Discount Zones plotted directly on your chart.
- Flexible timeframe support: Works on intraday, daily, weekly, and monthly charts.
- Customizable colors and transparency: Easily differentiate zones for quick analysis.
- Label options: Highlight each zone with small, normal, or tiny labels.
- Automatically selects daily, weekly, or monthly zones based on your current chart timeframe.
- Zones and labels automatically refresh with new daily, weekly, and monthly data.
- Configurable lookback period: Control the number of bars displayed for zone visualization.
Use Cases:
- Identify overbought and oversold areas in trending or ranging markets.
- Plan entries near discount zones and exits near premium zones.
- Incorporate into ICT-style or price-action strategies for enhanced precision.
- Works for forex, futures, indices, and crypto markets.
How it Works:
The indicator calculates previous high, low, and midpoint levels for the chosen timeframe and draws zones:
Premium Zone: Top portion of the range (overbought).
Equilibrium Zone: Middle portion of the range (balance point).
Discount Zone: Bottom portion of the range (oversold).
Perfect for:
Traders seeking clear visual support/resistance zones and enhanced ICT-style trading precision.
⚠️ Double Printing / Weekend Zones:
On intraday charts (4H, 1H), previous day zones may appear twice depending on the time of day. For stocks or markets closed RTH charts or over the weekend, the indicator may repeat the last available daily zone. Users should verify zone relevance with current price action.
It doesn’t invalidate the zones, but users need to interpret them with context.
⚠️ Disclaimer
This indicator is for educational and analytical purposes only.
Trading carries inherent risks. Past performance does not guarantee future results. By using ICT Confluence Engine you acknowledge that all trading decisions are your own. The creators of this indicator are not responsible for any gains or losses resulting from the use of this tool.
✨ Access:
If you find this ICT tool useful, consider adding it to your favorites and sharing feedback. Check out our other indicators available at our website.
If you'd like access or have any questions, feel free to reach out to me directly via DM.
SLT Market Profile Single PrintsWhat is a "Single Print"?
In a normal trading environment, price moves back and forth, allowing multiple 30-minute bars to trade over the same price levels. This creates "value" because both buyers and sellers agree to trade at those prices.
However, when institutional players enter the market with extreme conviction, price can "rocket" or "plummet" so quickly that only one single 30-minute bar touches certain price levels. These are known as Single Prints. They represent an "unfinished auction" - a gap in the market's structure where price moved too fast to establish a fair value area.
How this Indicator Works?
This script monitors the price action of every 30-minute bar throughout the session to identify these rare moments of extreme imbalance where there is no overlap of multiple bars.
NOTE: As Market Profile uses 30m bars, this script will ONLY work on a a 30m timeframe chart.
Finding the Gaps: The indicator looks for price zones that were visited by only one 30-minute bar during the entire day.
Filtering the Edges (Tails): Often, the very highest or lowest prices of the day are touched by only one bar as the market reverses. These are common "tails." This indicator automatically ignores those edges and focuses only on imbalances that occur in the middle of the day’s range
Origin Tracking: The script identifies the exact 30-minute bar where the move started and begins the visualization from that specific point in time.
Once a "Single Print" is detected, the indicator draws two horizontal lines marking the top and bottom of the imbalance zone (the price range where only a single 30m bar was traded). These lines stay active and extend into the future as a "magnet" for future price action.
Indicator Parameters
The indicator has the following parameters:
Tick Grouping - It determines how much "room" we give a price level to be considered the same. A value of 1 means that every tick is unique, a value of 4 means that every 4 ticks are grouped together and so on. For instruments with low tick value (like stocks or forex) it is recommended to use a value greater than 1, otherwise the performance of the indicator may suffer.
Single Print Color - Sets the color for the horizontal "single" dashed lines.
Max Active Singles - Limits the total number of "unfilled" zones tracked on the chart at one time.
Intraday Dynamic levelsThis indicator automatically draws and manages the most important intraday reference levels for day trading:
Main displayed levels:
- Pre-market High & Low (solid blue lines) — highest/lowest prices during the user-defined pre-market session (default 01:00–09:30 NY time)
- Point of Control (POC) (white dotted line) — approximated by the value of 15-minute
SuperTrend at the regular session open (very popular institutional reference level)
- Dynamic Higher Lows / Lower Highs (red/green solid lines) — the most recent significant swing points that respect a minimum distance between levels
How dynamic swing levels work:
New Higher Low (red) is added only when trend changes to bullish AND the new swing low is sufficiently lower than previous lowest level
New Lower High (green) is added only when trend changes to bearish AND the new swing high is sufficiently higher than previous highest level
Minimum distance between levels is either:fixed value (default 3 points/ticks)
or dynamic = Daily ATR(14) ÷ 10 (recommended — much more adaptive)
Maximum number of dynamic levels per side is user-configurable (default = 2)
Additional features:Uses chart SuperTrend (default 4.2×15) to detect trend changes
All lines extend to the right and are properly cleaned/reset at the beginning of each new regular trading session
Non-repainting higher-timeframe calculations (pre-market SuperTrend + daily ATR)
Best used on:15 sec – 15 min charts - Day trading / scalping sessions
Very clean & lightweight visual tool helping traders quickly see:institutional pre-market structure
current market structure swings (higher lows / lower highs)
key value area (POC)
Perfect companion for orderflow, volume profile, or pure price action intraday strategies.Enjoy your trading!
Manipulation Candle IndicatorManipulation Candle Indicator – User Guide
Overview
This indicator identifies potential reversal setups based on larger 15-minute “manipulation” candles and provides entry signals on the 5-minute chart. A manipulation candle is defined as a 15-minute candle whose range exceeds a user-defined percentage of the daily ATR. The reversal entry is triggered when the next 5-minute candle breaks the close of the first opposite-color 5-minute candle following the manipulation candle.
This tool is designed for intraday traders who want a visual representation of high-probability reversal zones without cluttering the chart with additional lines or automated orders.
Inputs
General
Daily ATR Length: Number of periods to calculate the daily ATR.
15m Manipulation (% Daily ATR): Minimum percentage of the daily ATR required for a 15-minute candle to be considered a manipulation candle.
Session Filters
Use Session Filters: Enable or disable session filtering.
Session 1 / Session 2: Define time windows when the indicator will detect manipulation candles and trigger entries.
Label Toggles
Show Bull Manipulation Label: Show or hide the label for bullish manipulation candles.
Show Bear Manipulation Label: Show or hide the label for bearish manipulation candles.
Show Long Entry Label: Show or hide the label for long reversal entry.
Show Short Entry Label: Show or hide the label for short reversal entry.
How It Works
Identify Manipulation Candles (15m)
The indicator continuously monitors 15-minute candles.
If a candle’s range exceeds the defined percentage of the daily ATR, it is marked as a manipulation candle.
Labels are plotted for bullish or bearish manipulation candles depending on candle direction, if toggled on.
Arm Reversal Setup
After a manipulation candle, the script waits for the first opposite-color 5-minute candle.
For a bullish manipulation, the script waits for a red 5-minute candle.
For a bearish manipulation, the script waits for a green 5-minute candle.
Trigger Entry
Once the opposite 5-minute candle is confirmed, the next 5-minute candle breaking the close of that candle triggers a reversal entry.
Labels are plotted for long or short entries based on the reversal direction, if toggled on.
Session Filtering
The indicator only detects manipulation candles and triggers entries during active session windows if session filters are enabled.
Usage Tips
Apply the indicator to a 5-minute chart. The 15-minute manipulation candle is calculated in the background.
Adjust the ATR length and manipulation percentage to match the volatility of your instrument.
Use session filters to restrict signals to the most active trading periods.
Use label toggles to declutter the chart or focus only on certain signals.
This indicator does not execute trades automatically. It is meant for visual analysis and manual entries.
10 minutes ago
Release Notes
Manipulation Candle Indicator – User Guide
Overview
This indicator identifies potential reversal setups based on larger 15-minute “manipulation” candles and provides entry signals on the 5-minute chart. A manipulation candle is defined as a 15-minute candle whose range exceeds a user-defined percentage of the daily ATR. The reversal entry is triggered when the next 5-minute candle breaks the close of the first opposite-color 5-minute candle following the manipulation candle.
This tool is designed for intraday traders who want a visual representation of high-probability reversal zones without cluttering the chart with additional lines or automated orders.
Inputs
General
Daily ATR Length: Number of periods to calculate the daily ATR.
15m Manipulation (% Daily ATR): Minimum percentage of the daily ATR required for a 15-minute candle to be considered a manipulation candle.
Session Filters
Use Session Filters: Enable or disable session filtering.
Session 1 / Session 2: Define time windows when the indicator will detect manipulation candles and trigger entries.
Label Toggles
Show Bull Manipulation Label: Show or hide the label for bullish manipulation candles.
Show Bear Manipulation Label: Show or hide the label for bearish manipulation candles.
Show Long Entry Label: Show or hide the label for long reversal entry.
Show Short Entry Label: Show or hide the label for short reversal entry.
How It Works
Identify Manipulation Candles (15m)
The indicator continuously monitors 15-minute candles.
If a candle’s range exceeds the defined percentage of the daily ATR, it is marked as a manipulation candle.
Labels are plotted for bullish or bearish manipulation candles depending on candle direction, if toggled on.
Arm Reversal Setup
After a manipulation candle, the script waits for the first opposite-color 5-minute candle.
For a bullish manipulation, the script waits for a red 5-minute candle.
For a bearish manipulation, the script waits for a green 5-minute candle.
Trigger Entry
Once the opposite 5-minute candle is confirmed, the next 5-minute candle breaking the close of that candle triggers a reversal entry.
Labels are plotted for long or short entries based on the reversal direction, if toggled on.
Session Filtering
The indicator only detects manipulation candles and triggers entries during active session windows if session filters are enabled.
Usage Tips
Apply the indicator to a 5-minute chart. The 15-minute manipulation candle is calculated in the background.
Adjust the ATR length and manipulation percentage to match the volatility of your instrument.
Use session filters to restrict signals to the most active trading periods.
Use label toggles to declutter the chart or focus only on certain signals.
This indicator does not execute trades automatically. It is meant for visual analysis and manual entries.
Liquidity Zones (Pivot-based) Buyside/SellsideDescription
This indicator highlights potential liquidity zones based on confirmed swing highs and swing lows (pivot-based logic).
Buyside liquidity zones are drawn above swing highs, where short stops and breakout liquidity are likely to rest.
Sellside liquidity zones are drawn below swing lows, where long stops are typically clustered.
Zones are sized dynamically using ATR-based thickness, extended forward in time, and automatically removed once price trades through them (wick-based or close-based, configurable).
The script is designed to help traders:
Visualize areas where liquidity is likely to be targeted
Anticipate stop hunts and liquidity grabs
Improve timing around reversals, continuations, and range extremes
This tool is not a liquidation heatmap and does not rely on exchange or order book data.
Instead, it provides a price-action–based proxy for liquidity, fully compatible with ICT / SMC-style market structure analysis.
Key features :
-Pivot-based buyside & sellside liquidity zones
-ATR-adjusted zone thickness
-Automatic extension and cleanup of zones
-Adjustable sensitivity and zone limits
-Works on any market and timeframe
RokTrades's Info Table LITERokTrade’s Info Table — LITE is the free “quick context” version of my PRO table.
I built this for intraday traders who want the important market internals and key levels in one clean panel, without turning the chart into a mess. This version is intentionally trimmed: no scoring engine, no ORB module, no trap logic, and no chart plotting — just the core info I check every session.
WHAT LITE INCLUDES
INTERNALS (LIVE)
VIX: value + 1-bar change, plus optional “since open” delta in the hint column
Put/Call (P/C): includes a moving average and a simple regime tag (P/C above MA = risk-off, below = risk-on)
ADD: advance/decline with change + optional since-open delta
NYSE U/D and NASDAQ U/D: signed up/down volume ratio
Optional toggles: TRIN and TICK (if you want them)
SIMPLE “STATE TAGS” (NO SCORING)
This is not a bias/score engine, but it does give quick context:
VIX Regime: VIX vs EMA
P/C Regime: P/C vs MA
Breadth Bias: simple majority read using available breadth signals so you can see if internals are leaning bullish, bearish, or mixed
KEY LEVELS (TABLE ONLY)
Premarket High / Low (PMH / PML)
Prior Day High / Low (PDH / PDL)
Prior Day Close (YClose)
Prior Day Mid (PD Mid)
UI / USABILITY
Compact vs Expanded table mode
Mobile-friendly short labels option
Table position + text size controls
Optional “update only on last bar” for performance
NOTES
Premarket High/Low requires Extended Hours candles enabled.
If you don’t see certain internals on your symbol/exchange, that’s usually a data feed/symbol mapping limitation (TradingView varies by broker/feed).
WHAT THE PRO VERSION ADDS (TEASER)
PRO is where the “decision layer” lives:
Bias scoring engine
OPEN bias vs INT bias + alignment / divergence read
ORB 15/30/60 status
Trap warning system + play hints (when breakouts/breakdowns are suspect)
Prior Day Volume Profile levels (YPOC + Value Area)
Plot up to 10 key levels on the chart with labels + styling options






















