Indicator

Indicator

Strategy

Indicator

Previous Day High/Low Breakout IndicatorPrevious Day High/Low Breakout Indicator
This indicator is built around a simple breakout concept:
• Bullish momentum is assumed when price closes above the Previous Day High (PDH)
• Bearish momentum is assumed when price closes below the Previous Day Low (PDL)
The script continuously tracks the previous session’s high and low levels and uses them as directional breakout triggers.
Unlike indicators that rely on multiple lagging filters, this approach focuses primarily on raw price action and market expansion beyond key reference levels.
━━━━━━━━━━━━━━━━━━
CORE LOGIC
Previous Day Range Detection
The script calculates:
• Previous Day High (PDH)
• Previous Day Low (PDL)
using the selected session settings.
These levels remain active until a new session completes and fresh PDH/PDL levels become available.
━━━━━━━━━━━━━━━━━━
LONG LOGIC
A BUY signal is generated when:
• Price closes above the Previous Day High
This indicates that price has broken beyond the prior session’s upper boundary, suggesting possible bullish continuation or expansion.
If an active short position exists internally, the script first generates a SELL EXIT signal before flipping to a BUY signal.
━━━━━━━━━━━━━━━━━━
SHORT LOGIC
A SELL signal is generated when:
• Price closes below the Previous Day Low
This indicates that price has broken beneath the prior session’s lower boundary, suggesting possible bearish continuation or downside expansion.
If an active long position exists internally, the script first generates a BUY EXIT signal before flipping to a SELL signal.
━━━━━━━━━━━━━━━━━━
EXIT LOGIC
The indicator uses an opposite-breakout exit model.
Long Exit
A BUY EXIT signal occurs when:
• A valid bearish breakout appears while a long state is active
Short Exit
A SELL EXIT signal occurs when:
• A valid bullish breakout appears while a short state is active
This creates a continuous flip-based structure where the market remains either:
• Bullish
• Bearish
• Neutral
depending on the latest breakout condition.
━━━━━━━━━━━━━━━━━━
MARKET COMPATIBILITY
This indicator is primarily designed for continuous 24-hour markets such as cryptocurrencies, where Previous Day High and Low levels often act as important breakout reference zones.
However, it can also be used on other markets such as:
• Indices
• Stocks
• Forex
• Futures
with appropriate session selection and trader discretion.
━━━━━━━━━━━━━━━━━━
FLOATING RUNNING P/L LABEL
While a trade state is active, the script displays a floating running P/L label on the chart.
The label updates dynamically and shows:
• Current trade direction
• Live unrealized percentage gain/loss
The label’s:
• Colors
• Position offset
• Visibility
can all be customized from settings.
━━━━━━━━━━━━━━━━━━
BACKTEST WINDOW
The indicator includes an optional custom backtest window.
When enabled:
• Signals
• Statistics
• Performance calculations
are restricted only to the selected date range.
This helps isolate specific market conditions or testing periods without affecting the rest of the chart.
━━━━━━━━━━━━━━━━━━
STATISTICS TABLE
A compact statistics table is included for quick performance reference.
The table displays:
• Total Trades
• Wins / Losses
• Win Rate %
• Average Win %
• Average Loss %
The table position and colors are fully customizable from settings.
━━━━━━━━━━━━━━━━━━
NOTES
• This script is an indicator, not a PulseWire strategy.
• Statistics are internally calculated and intended for analytical reference only.
• Performance can vary significantly across assets, sessions, and timeframes.
• Always combine breakout systems with proper risk management and market context analysis.
━━━━━━━━━━━━━━━━━━
DISCLAIMER
This indicator is provided for educational and informational purposes only and should not be considered financial advice.
Trading involves substantial risk, and past performance does not guarantee future results. Always perform your own research, test strategies thoroughly, and use appropriate risk management before trading with real capital. Indicator

CQ_(3)_Fibonacci IntraMonth Range v2================================================================================
CQ FIBONACCI INTRAMONTH RANGE 2 — USER MANUAL
Based on Fibonacci IntraDay Range — Adapted to IntraMonth Targets
Pine Script v6 | PulseWire Overlay Indicator
================================================================================
────────────────────────────────────────────────────────────────────────────────
OVERVIEW
────────────────────────────────────────────────────────────────────────────────
This indicator is a monthly-timeframe adaptation of the Fibonacci IntraDay and
IntraWeek Range system. Instead of projecting intraday or intraweek price
targets, it projects INTRAMONTH Fibonacci targets above and below each month's
opening price, calculated from a rolling average of past monthly high-low ranges.
The indicator is designed for position traders and swing traders who plan their
monthly bias and price targets at the start of each calendar month, using the
historical average monthly range as the statistical basis for target placement.
Key differences from the IntraWeek version:
- Reference period: MONTHLY open instead of weekly open
- Range calculation: average monthly high-low ranges (default: 3 months)
- Session trigger: first bar of each new month (timeframe.change("M"))
- Gauge label: "MONTH" instead of "WEEK"
- Monthly open baseline label: "⨁M" instead of "⨁W"
- Default horizontal offset: 58 bars (widest of the three, suits weekly/monthly charts)
- Default averaging window: 3 months (one quarter)
- Default level colors: blue rgb(48, 141, 255) vs amber
- Display Mode options: This Month / Two Months / Quarter / All
- No timeframe guard — runs on ALL timeframes including Monthly
- drawLines() called unconditionally (no tfAllowed check)
Timeframe availability:
Allowed: All timeframes (intraday, daily, weekly, monthly)
Hidden: Only when Display Mode = "Hidden"
Note: Unlike the IntraDay and IntraWeek versions, this script has NO tfAllowed
timeframe guard. The indicator draws on every timeframe without restriction.
The gauge also runs unconditionally (no tfAllowed check).
────────────────────────────────────────────────────────────────────────────────
HOW IT WORKS — CONCEPTUAL SUMMARY
────────────────────────────────────────────────────────────────────────────────
Step 1 — Monthly range accumulation:
Each month's high-low range is tracked as the month progresses bar by bar.
On the first bar of each new month, the completed prior month's range
(monthHigh - monthLow) is added to a rolling array. The oldest entry is
dropped once the array exceeds the "Months to Average Range" setting.
The array average becomes the "averageRange" for the new month.
Step 2 — Level projection:
Using the current month's opening price as the baseline, Fibonacci percentage
levels are projected both above and below:
levelAbove = monthlyOpen + averageRange × (Fib% ÷ 100)
levelBelow = monthlyOpen − averageRange × (Fib% ÷ 100)
Available levels: 15%, 25%, 40%, 50%, 60%, 75%, 100%, 125%, 150%, 175%, 200%
The 100% level equals a full average-range move — the primary monthly target.
Step 3 — Drawing objects created at month open:
At the first bar of each new month, all lines, label boxes, and circle
markers are created and stored in an IntraMonthRange object. Every subsequent
bar extends the right edge of all lines and label boxes forward in real time.
Step 4 — Session cleanup:
When Display Mode limits how many months are visible, the oldest
IntraMonthRange object is deleted (all drawing objects removed) when the
collection exceeds the maximum count.
Step 5 — Gauge update:
On every bar, the intramonth gauge is repositioned to the right edge of the
chart, showing current price position relative to the monthly open, high, and
low in real time.
────────────────────────────────────────────────────────────────────────────────
ALGORITHM — DETAILED STEP-BY-STEP
────────────────────────────────────────────────────────────────────────────────
══════════════════════════════════════════════════════════════════════════════
PROCESS 1: MONTHLY SECURITY DATA RETRIEVAL
══════════════════════════════════════════════════════════════════════════════
The indicator requests monthly OHLC data using request.security() with
lookahead_on, making monthly values available on every lower-timeframe bar:
monthly_open — opening price of the current month's candle
monthly_high — running high of the current month
monthly_low — running low of the current month
monthly_close — most recent close (current price intramonth)
These values feed both the gauge display and the profit/loss label.
══════════════════════════════════════════════════════════════════════════════
PROCESS 2: AVERAGE MONTHLY RANGE CALCULATION
══════════════════════════════════════════════════════════════════════════════
Variables:
monthRanges — rolling float array of completed monthly ranges
monthHigh — running high of the current month (tracked bar by bar)
monthLow — running low of the current month (tracked bar by bar)
averageRange — average of all entries in monthRanges
months — user-defined window size (default: 3)
Logic per bar:
Trigger: isFirstBarOfMonth = timeframe.change("M")
Fires on the first bar where the monthly timeframe changes — the first
trading bar of each new calendar month.
On isFirstBarOfMonth:
1. Compute completed prior month's range: monthHigh - monthLow
Push this value into monthRanges.
2. Reset monthHigh = high and monthLow = low (current bar's values).
3. If monthRanges.size() > months, shift out the oldest entry.
4. Recalculate averageRange = array.avg(monthRanges).
On every bar (including non-month-open bars):
monthHigh := high > monthHigh ? high : monthHigh
monthLow := low < monthLow ? low : monthLow
This continuously tracks the current month's expanding range.
Note: On the first bar of history, monthHigh and monthLow are na. The first
completed range pushed to monthRanges will compute as na - na = na. The
averageRange stabilizes only after at least one full month of data.
Important ordering note: In the main logic block, monthRanges.push() and the
monthHigh/monthLow reset happen BEFORE drawLines() is called. This means
the averageRange used to draw this month's levels is based on the prior
completed months only — the current month's range is not included in its
own level calculation. This is correct behavior.
══════════════════════════════════════════════════════════════════════════════
PROCESS 3: INTRAMONTH TENDENCY GAUGE
══════════════════════════════════════════════════════════════════════════════
Purpose: Real-time vertical gauge at the right edge of the chart showing
where price sits within the current month's range relative to the monthly open.
Trigger: Runs on every bar when Intramonth_gauge_draw = true.
Note: Unlike the IntraDay and IntraWeek versions, there is NO tfAllowed guard
on the gauge block. It runs on all timeframes.
Structure (two halves, anchored at monthly_open):
BULLISH HALF (upper, dark green by default):
Gauge_box_scope — background box spanning monthly_open to monthly_high
Labeled "MONTH" at top, dotted border, 50% transparent.
Gauge_line_max — horizontal line at monthly_high (foreground/teal color)
Gauge_line_min — horizontal line at monthly_open (background color)
Gauge_box_prc — filled inner box from monthly_open to close
Color = bullish foreground if close >= monthly_open
Gauge_line_prc — horizontal line at current close (width 4)
gauge_high_label — price label above the monthly high: "$X,XXX"
Style: label_down, sits above the bull box top
gauge_open_marker — short solid white horizontal line at monthly_open
gauge_open_label — "◀" label pointing left at monthly_open
BEARISH HALF (lower, dark amber by default):
Gauge_box_scope2 — background box spanning monthly_low to monthly_open
Labeled "MONTH" at bottom, dotted border, 50% transparent.
Gauge_line_max2 — horizontal line at monthly_open (bullish color, width 3)
Gauge_line_min2 — horizontal line at monthly_low (bearish foreground, width 2)
Gauge_box_prc2 — filled inner box from close to monthly_open
Color = Gmonthly_color (teal if above open, amber if below)
Gauge_line_prc2 — horizontal line at current close (width 4)
gauge_low_label — price label below the monthly low: "$X,XXX"
Style: label_up, sits below the bear box bottom
PROFIT/LOSS LABEL (positioned to the right of the gauge):
profit_loss_label — dollar gain/loss from monthly open: "$#,XXX"
Position: bar_index + gauge_offset + 6
y position: close + y_adjust (1 if above open, -1 if below)
Text: math.round(close - monthly_open, 0) formatted as '$#,000'
Color: fully transparent background, opaque text
Text color: teal if above monthly open, amber if below
Tooltip: percentage return + dollar amount + "from Monthly Opening: $X,XXX"
Position calculation:
gauge_offset = lines_offset - 6
Bullish box: left = bar_index + gauge_offset - 2
right = bar_index + gauge_offset + 1
Fill box: left = bar_index + gauge_offset - 1
right = bar_index + gauge_offset (note: -0 = +0)
P&L; label: bar_index + gauge_offset + 6
Dynamic updates (every bar):
All box corners, line endpoints, and label positions are updated using
set_ methods so the gauge tracks price in real time without creating
new objects on each bar.
Color logic:
GMOcolor = close >= monthly_open (boolean)
Gmonthly_color = gauge_bullish_color2 if GMOcolor else gauge_bearish_color2
This single variable drives the fill color of both price boxes and the
profit/loss label text color.
══════════════════════════════════════════════════════════════════════════════
PROCESS 4: FIBONACCI LEVEL DRAWING (drawLines function)
══════════════════════════════════════════════════════════════════════════════
Called unconditionally on every bar (no tfAllowed guard in the call site).
Creates new drawing objects only when isFirstBarOfMonth is true and
displayMode is not "Hidden".
─── MONTH-OPEN TRIGGER ─────────────────────────────────────────────────────
A new IntraMonthRange object is instantiated with three empty arrays:
lines — array for all Fibonacci level lines
labels — array for all text label boxes
circles — array for all circle dot markers
─── MONTHLY OPEN BASELINE ──────────────────────────────────────────────────
A dotted line is drawn at the opening price of the new month:
line.new(x1=bar_index, y1=open, x2=bar_index, y2=open,
color=HighLight, width=lineWidth, style=line.style_dotted)
x1 = x2 = bar_index at creation time. The extendLines() method updates x2
on every subsequent bar to extend the line forward.
If showCircles:
A "●" label is placed at bar_index - 1 at the open price.
Transparent background, HighLight text color.
If showLabels:
A box label "⨁M $X,XXX" is placed at the open price.
⨁M identifies this as the monthly open baseline.
bgcolor = HighLight, text_color = HighLight (rendered as colored text
against the HighLight background, making it appear highlighted).
─── FIBONACCI LEVEL LOOP (i = 0 to 10) ────────────────────────────────────
For each of the 11 possible levels, if fibEnabled.get(i) is true:
Compute:
levelAbove = open + (averageRange × fibMultis.get(i) / 100)
levelBelow = open − (averageRange × fibMultis.get(i) / 100)
Line color selection:
i == 6 (100% level): HighLight color (full opacity, accent blue)
all others: color.new(colors.get(i), 45) (45% transparent)
Circle color: always HighLight — same color for all circles regardless of level.
For levelAbove:
Push a line (style per lineStyle) into newIMR.lines.
If showCircles: push a "●" label at bar_index - 1, y = levelAbove.
For levelBelow:
Push a line (same style) into newIMR.lines.
If showCircles: push a "●" label at bar_index - 1, y = levelBelow.
If showLabels (evaluated independently after the main fib block):
For levelAbove: push a box with:
i == 6: "▼+100% $X,XXX" (special full-range label)
others: "+X% $X,XXX"
text_valign: text.align_bottom (label text sits above the line)
text_color: HighLight for i==6, NormalColor for all others
bgcolor: color.rgb(54, 58, 69, 70) — semi-transparent dark gray
For levelBelow: push a box with:
i == 6: "▲-100% $X,XXX" (special full-range label, downside)
others: "-X% $X,XXX"
text_valign: text.align_top (label text sits below the line)
text_color: HighLight for i==6, NormalColor for all others
bgcolor: same semi-transparent dark gray
After loop completes: push newIMR into collection array.
─── LINE EXTENSION (every bar after month open) ────────────────────────────
If newIMR is not na (i.e., a month object was created at some point during
this indicator's execution):
Call newIMR.extendLines():
For each line: line.set_x2(bar_index + lines_offset)
For each box label: box.set_right(bar_index + lines_offset)
(Label extension only runs if showLabels is true)
This keeps every active line and label stretched to the current bar plus
the user-defined offset on every tick.
─── COLLECTION CLEANUP ─────────────────────────────────────────────────────
maxMonths mapping:
"This Month" → 1
"Two Months" → 2
"Quarter" → 3
"All" → 999
If collection.size() > maxMonths AND displayMode != "All":
Call deleteLines() on collection.get(0):
Delete all lines and label boxes (if showLabels) in the oldest object.
Delete all circle labels.
Shift the oldest object out of collection.
────────────────────────────────────────────────────────────────────────────────
DATA STRUCTURES
────────────────────────────────────────────────────────────────────────────────
type IntraMonthRange
array lines — all Fibonacci level lines for this month
array labels — all text label boxes for this month
array circles — all circle dot markers for this month
method extendLines(IntraMonthRange this)
Iterates over lines and extends each to bar_index + lines_offset.
Iterates over labels and extends each right edge to bar_index + lines_offset.
Guard: skips if this is na.
method deleteLines(IntraMonthRange this)
Deletes every line in lines .
Deletes every box in labels (only if showLabels is true).
Deletes every label in circles .
Guard: skips if this is na.
Global state arrays:
collection — array — all active month objects
monthRanges — array — rolling monthly range history
fibMultis — (fixed at init)
colors — 11 user-defined level colors (captured at indicator load)
fibEnabled — 11 user-defined boolean toggles (captured at indicator load)
────────────────────────────────────────────────────────────────────────────────
SETTINGS REFERENCE
────────────────────────────────────────────────────────────────────────────────
── CONFIGURATION ───────────────────────────────────────────────────────────────
Display Mode
Controls how many months of Fibonacci levels are drawn simultaneously.
Hidden — disables all Fibonacci drawing (gauge still runs)
This Month — current month only (default)
Two Months — current and previous month
Quarter — last 3 months (one quarter)
All — every month on the chart (no cleanup, watch limits)
── AVERAGE RANGE SETTINGS ──────────────────────────────────────────────────────
Months to Average Range
Number of past completed months used to compute the average monthly range.
Default: 3 months (one quarter).
Lower values (1–2): react quickly to recent volatility; useful during
earnings seasons or high macro-event months.
Higher values (6–12): smoothed long-term average; better for stable,
range-bound instruments or broad index analysis.
── LABEL SETTINGS ──────────────────────────────────────────────────────────────
Show Labels
Toggles all text boxes showing percentage and dollar value at each level.
Default: On
Font Size
Options: Tiny / Small / Medium / Large
Applies to all level label text boxes.
Default: Small
Text Alignment
Options: Left / Center / Right
Horizontal alignment of text within each label box.
Default: Right
Position (Horizontal Offset)
Range: 0 – 100 bars. Default: 58.
How far right lines and labels extend past the current bar.
This is the widest default of the three versions (IntraDay=32, Week=45,
Month=58), reflecting the wider spacing needed on daily/weekly charts.
The gauge position is derived as: lines_offset − 6.
── LINE SETTINGS ───────────────────────────────────────────────────────────────
Line Width
Pixel thickness of all Fibonacci level lines.
Default: 1
Line Style
Options: Solid / Dashed / Dotted
Applies uniformly to all Fibonacci level lines.
Default: Solid
── CIRCLE SETTINGS ─────────────────────────────────────────────────────────────
Show Circles at Line Start
Places a "●" marker at the left origin (month open bar) of each level line.
All circles use HighLight color regardless of individual level color.
Default: On
Circle Size
Options: Tiny / Small / Normal / Large
Default: Tiny
── FIBONACCI LEVELS ────────────────────────────────────────────────────────────
Each level has an individual color picker and enable/disable toggle.
All 11 levels share the same default color: rgb(48, 141, 255) — medium blue.
Level % Default Notes
------- ------ -------- ---------------------------------------------------
0 15% On Minor monthly support / resistance
1 25% On Quarter-range monthly pivot
2 40% On Below midpoint inflection
3 50% On Midpoint — half the average monthly range
4 60% On Above midpoint inflection
5 75% On Three-quarter range target
6 100% On Full average range — rendered in HighLight color
7 125% Off Extended monthly move
8 150% Off Extended monthly move
9 175% Off Extreme monthly extension
10 200% Off Double-range extreme
NormalColor (first "Highlighted Items Color" input)
Color of label text for all non-100% enabled levels.
Default: rgb(48, 141, 255) — same medium blue as level lines.
HighLight (second "Highlighted Items Color" input)
Color for: 100% level line and labels, the monthly open baseline line,
and ALL circle markers.
Default: rgb(134, 207, 255) — lighter, brighter blue.
Note: Both color inputs share the title "Highlighted Items Color" in
the settings panel. NormalColor appears first, HighLight second.
── GAUGE SETTINGS ──────────────────────────────────────────────────────────────
Draw Intramonth Price Tendency Gauge
Enables/disables the vertical gauge at the right chart edge.
Default: On
Note: No tfAllowed restriction — gauge runs on all timeframes.
Gauge Background (Bullish)
Background color of the upper half box (monthly_open to monthly_high).
Default: Dark green rgb(0, 83, 75).
Foreground (Bullish)
Fill bar color and monthly high label text color when close >= monthly_open.
Default: Bright teal rgb(0, 194, 174).
Gauge Background (Bearish)
Background color of the lower half box (monthly_low to monthly_open).
Default: Dark amber rgb(85, 48, 0).
Foreground (Bearish)
Fill bar color and monthly low label text color when close < monthly_open.
Default: Orange rgb(255, 153, 0).
────────────────────────────────────────────────────────────────────────────────
COMPARISON: ALL THREE VERSIONS SIDE BY SIDE
────────────────────────────────────────────────────────────────────────────────
Feature IntraDay IntraWeek IntraMonth
──────────────────────── ───────────────── ───────────────── ─────────────────
Reference period Daily open Weekly open Monthly open
Range source Daily H-L Weekly H-L Monthly H-L
Default avg window 1 day 4 weeks 3 months
Session trigger session.isfirstbar timeframe.change timeframe.change
("W") ("M")
Baseline label ⨁D ⨁W ⨁M
Gauge label DAY WEEK MONTH
Security timeframe 'D' 'W' 'M'
Timeframe guard W and M hidden M hidden None (all TFs)
tfAllowed in drawLines Yes Yes No (removed)
Default offset 32 bars 45 bars 58 bars
Default circle size Small Tiny Tiny
Default level colors Blue (153,198,253) Amber (182,109,0) Blue (48,141,255)
HighLight color Blue (181,212,249) Gold (255,176,58) LtBlue(134,207,255)
Display mode options Today/Two Days/ This Week/ This Month/
Week/All Two Weeks/ Two Months/
Month/All Quarter/All
Max visible periods 1/2/5/999 1/2/4/999 1/2/3/999
Current price label Yes (≤4H only) No No
Class name IntraDayRange IntraWeekRange IntraMonthRange
────────────────────────────────────────────────────────────────────────────────
PRACTICAL USAGE GUIDE
────────────────────────────────────────────────────────────────────────────────
Best timeframes for this indicator:
Weekly chart — primary use case for position traders; shows the monthly
Fibonacci levels across all weeks of the month, making it
easy to see which levels each week's price action is
interacting with.
Daily chart — ideal for swing traders; allows granular tracking of price
progress toward each monthly Fibonacci target day by day.
4H chart — useful for active traders who want intraday context while
keeping monthly structure visible.
Monthly chart — levels draw once per bar; useful only for quick reference
when comparing multiple months in "Two Months" or "Quarter"
mode.
Setting the averaging window:
3 months (default) — one quarter; balances recency with seasonal smoothing.
1 month — uses only last month's range; extremely reactive; good
for instruments with high month-to-month volatility.
6 months — half-year average; best for stable indices or commodities
where monthly ranges are relatively consistent.
12 months — full-year average; produces very stable targets; useful
for annual range planning.
Reading the monthly gauge:
The gauge gives instant visual feedback on the month's price progress:
- The teal upper half shows how far price has moved above the monthly open
toward the month's running high.
- The amber lower half shows how far price has dropped below the monthly open
toward the month's running low.
- The fill bar inside each half shows the proportional position of current
price within that half of the month's range.
- Hover over the P&L; label for exact percentage return from the monthly open.
Using levels as monthly targets:
The 50% level marks the midpoint of an average monthly range. Reaching 50%
within the first two weeks of the month represents a normal monthly pace.
The 100% level is the primary monthly target — reaching it signals a full
average-range month. Levels above 100% indicate an unusually large monthly
move, typical of trend-acceleration or major macro events.
Display Mode recommendations:
"This Month" — cleanest; focus on current month only.
"Two Months" — compare current month structure against the prior month.
"Quarter" — map the full quarter; useful for identifying whether
Fibonacci targets cluster across months (confluence zones).
"All" — useful only on high timeframes with limited bar history.
Monitor drawing object limits carefully.
Avoiding chart clutter:
On intraday and daily timeframes, monthly Fibonacci levels span a very large
price area. Keep the 125%–200% levels disabled unless specifically tracking
breakout months. Reducing the offset to 30–40 bars on daily charts helps
prevent label overlap with price action. On weekly charts the default 58-bar
offset works well.
────────────────────────────────────────────────────────────────────────────────
KEY DIFFERENCES FROM INTRADAY/INTRAWEEK VERSIONS — TECHNICAL NOTES
────────────────────────────────────────────────────────────────────────────────
1. No timeframe guard on indicator execution:
The IntraDay version hides on Weekly and Monthly charts. The IntraWeek
version hides on Monthly charts. The IntraMonth version has NO such guard.
The tfAllowed variable that exists in the other two versions is absent here.
drawLines() is called unconditionally, and the gauge block runs without a
tfAllowed condition.
2. No tfAllowed check inside drawLines():
The IntraDay and IntraWeek drawLines() functions check tfAllowed before
extending lines and before cleanup. The IntraMonth version omits this check
entirely — extension and cleanup run on every bar regardless of timeframe.
3. "Quarter" instead of "Month" or "Week":
The maximum Display Mode at the 3-period mark is called "Quarter" (3 months)
rather than "Month" (4 weeks in IntraWeek) or "Week" (5 days in IntraDay).
The maxMonths mapping is: This Month=1, Two Months=2, Quarter=3, All=999.
4. Main logic call order:
In IntraDay and IntraWeek, the range reset and averageRange recalculation
happen inside the session trigger block, followed by a separate drawLines()
call. In IntraMonth, the same order is preserved but drawLines() is called
at the bottom of the script without any tfAllowed guard wrapper.
5. Gauge fill box right edge:
The IntraMonth gauge uses bar_index + gauge_offset - 0 (effectively +0)
for the right edge of the fill box, compared to bar_index + gauge_offset
in the IntraWeek version. The result is functionally identical.
────────────────────────────────────────────────────────────────────────────────
QUICK REFERENCE — DEFAULT SETTINGS
────────────────────────────────────────────────────────────────────────────────
Display Mode This Month
Months to Average Range 3
Show Labels On
Font Size Small
Text Alignment Right
Horizontal Offset 58
Line Width 1
Line Style Solid
Show Circles On
Circle Size Tiny
Active Fib Levels 15%, 25%, 40%, 50%, 60%, 75%, 100%
Level Colors Blue rgb(48, 141, 255)
HighLight Color Light Blue rgb(134, 207, 255)
Normal Label Color Blue rgb(48, 141, 255)
Gauge On (all timeframes)
Gauge Bullish BG Dark green rgb(0, 83, 75)
Gauge Bullish FG Teal rgb(0, 194, 174)
Gauge Bearish BG Dark amber rgb(85, 48, 0)
Gauge Bearish FG Orange rgb(255, 153, 0)
────────────────────────────────────────────────────────────────────────────────
LIMITATIONS AND NOTES
────────────────────────────────────────────────────────────────────────────────
- averageRange is na until at least one full month of data has been processed.
Fibonacci levels will not appear correctly on the very first month of any
chart's history.
- The colors and fibEnabled arrays are initialized once at indicator load
using the var keyword. Changes to level colors or enable/disable toggles
may require a full indicator reload to take effect on the arrays.
- On the Monthly timeframe, timeframe.change("M") fires on every bar. This
causes drawLines() to create a new IntraMonthRange object on every bar,
immediately cleaning up the previous one. Use the Daily or Weekly timeframes
for the intended visual behavior.
- All past month objects remain visible within the Display Mode limit.
Switching Display Mode mid-month will not retroactively restore previously
deleted month objects. The new limit takes effect at the next month boundary.
- Indicator drawing limits:
max_lines_count = 500
max_boxes_count = 500
max_labels_count = 500
In "All" mode with extended chart history on intraday timeframes, these
limits may be reached. Use "Quarter" (3 months) for practical long-term use.
- There is no current price label in this version. Unlike the IntraDay
version, no live floating price box is included in this script.
- The indicator does not provide stop loss, position sizing, or take profit
levels. These must be determined by the trader using their own risk
management framework.
================================================================================
END OF MANUAL
================================================================================
Indicator

Indicator

CQ_(1)_Fibonacci IntraDay Range v2================================================================================
CQ FIBONACCI INTRADAY RANGE 2 — USER MANUAL
Based on UkutaLabs intraday Range Indicator | Pine Script v6 |
================================================================================
────────────────────────────────────────────────────────────────────────────────
OVERVIEW
────────────────────────────────────────────────────────────────────────────────
This indicator projects Fibonacci-based intraday price targets above and below
each session's opening price, calculated from a rolling average of past daily
ranges. It also includes a real-time price tendency gauge and a live price label
to help you track intraday momentum at a glance.
Timeframe restriction:
The indicator is hidden on Weekly and Monthly charts. It is active on all
intraday timeframes (1m through 4H) and on the Daily chart.
────────────────────────────────────────────────────────────────────────────────
HOW IT WORKS
────────────────────────────────────────────────────────────────────────────────
Step 1 — Average Range Calculation
At the start of each new session (session.isfirstbar), the previous day's
high-low range is added to a rolling array. Once the array exceeds the
user-defined "Days to Average Range" setting, the oldest entry is dropped.
The average of all entries in the array becomes the "averageRange" value used
for the current session.
Step 2 — Level Projection
Using the current session's opening price as the baseline, the indicator
calculates Fibonacci percentage levels above and below:
levelAbove = dailyOpen + averageRange × (Fib% ÷ 100)
levelBelow = dailyOpen − averageRange × (Fib% ÷ 100)
Available levels: 15%, 25%, 40%, 50%, 60%, 75%, 100%, 125%, 150%, 175%, 200%
The 100% level represents a full average-range move from the open — the most
statistically significant level. It is always rendered in the accent/highlight
color regardless of individual color settings.
Step 3 — Drawing Objects
All lines, label boxes, and circle markers are created once at session open
and stored in an IntraDayRange object. On every subsequent bar, each line's
right-hand x-coordinate is updated to (bar_index + offset), extending the
lines forward in real time.
Step 4 — Session Cleanup
When Display Mode limits the number of visible sessions, the oldest
IntraDayRange object is automatically deleted (all its drawing objects
removed) and shifted out of the internal collection array.
────────────────────────────────────────────────────────────────────────────────
SETTINGS REFERENCE
────────────────────────────────────────────────────────────────────────────────
── CONFIGURATION ───────────────────────────────────────────────────────────────
Display Mode
Controls how many session ranges are displayed simultaneously.
Hidden — turns the indicator completely off
Today — shows only the current session (default)
Two Days — shows today and yesterday
Week — shows the last 5 sessions
All — shows every session available on the chart
Days to Average Range
How many past daily candles are used to compute the average high-low range.
Default: 1 (uses only yesterday's range).
Higher values smooth out outlier days; lower values react faster to recent
volatility.
── LABEL SETTINGS ──────────────────────────────────────────────────────────────
Show Labels
Toggles the price text boxes at each Fibonacci level. Each box shows the
percentage label (e.g., "+50%") and the corresponding dollar price.
Font Size
Options: Tiny / Small / Medium / Large
Applies to all level label text.
Text Alignment
Options: Left / Center / Right
Controls the horizontal alignment of text inside each label box.
Position (Horizontal Offset)
Range: 0 – 100 bars. Default: 32.
How far to the right the lines and labels extend past the last bar.
The gauge position is automatically derived from this value (offset − 6).
── LINE SETTINGS ───────────────────────────────────────────────────────────────
Line Width
Pixel thickness of all Fibonacci level lines.
Line Style
Options: Solid / Dashed / Dotted
Applies to all horizontal Fibonacci level lines.
── CIRCLE SETTINGS ─────────────────────────────────────────────────────────────
Show Circles at Line Start
Draws a dot marker at the left origin of each level line, providing a clear
visual anchor at the session open bar.
Circle Size
Options: Tiny / Small / Normal / Large
Scales the dot markers independently from the label text.
── FIBONACCI LEVELS ────────────────────────────────────────────────────────────
Each level has three controls:
- Line Color individual color picker for that level's line
- Enable toggle on/off switch for that level
- (The color and toggle appear inline on the same row in settings)
Level % Default Notes
------- ------ -------- ---------------------------------------------------
0 15% On Minor support / resistance zone
1 25% On Quarter-range pivot
2 40% On Below-midpoint inflection
3 50% On Midpoint — half the average range
4 60% On Above-midpoint inflection
5 75% On Three-quarter range target
6 100% On Full average range — rendered in highlight color
7 125% Off Extended move target
8 150% Off Extended move target
9 175% Off Extreme extension
10 200% Off Double-range extreme
Line Color (shared)
Default color for all enabled levels: rgb(153, 198, 253) — soft blue.
Highlighted Items Color
The color used specifically for the daily open baseline and the 100% level
lines and labels. Default: rgb(181, 212, 249).
Normal Color
The color used for all other enabled level labels.
Default: rgb(136, 190, 255).
── GAUGE SETTINGS ──────────────────────────────────────────────────────────────
Draw Intraday Price Tendency Gauge
Enables or disables the vertical gauge drawn at the right edge of the chart.
How the gauge works:
The gauge is split into two halves, anchored at the daily open price:
- Bullish half (upper): spans from daily open up to daily high
- Bearish half (lower): spans from daily open down to daily low
An inner shaded bar fills proportionally to show where current price sits
within the session's range. The daily high and low are labeled with prices.
A floating label to the right of the gauge shows the dollar gain/loss from
the daily open, with a tooltip displaying the percentage move.
Gauge Background (Bullish)
Background color of the upper (bullish) half of the gauge.
Default: dark green rgb(0, 83, 75).
Foreground (Bullish)
Color of the active fill bar and high price label when price is above open.
Default: bright teal rgb(0, 194, 174).
Gauge Background (Bearish)
Background color of the lower (bearish) half of the gauge.
Default: dark amber rgb(85, 48, 0).
Foreground (Bearish)
Color of the active fill bar and low price label when price is below open.
Default: orange rgb(255, 153, 0).
Note: The gauge's horizontal position is automatically calculated as
(Position (Horizontal Offset) − 6) bars to the right of the last bar.
── CURRENT PRICE LABEL ─────────────────────────────────────────────────────────
Show Current Price Label
Displays a live-updating price label to the right of the chart.
Only active on intraday timeframes at or below 4H, and only during
confirmed real-time bars (not on historical bars).
Position (Horizontal Offset)
Controls how far to the right the price label sits from the last bar.
This is a separate offset from the Fibonacci lines offset.
Behavior:
- Cyan color when price is above the daily open
- Orange-red color when price is below the daily open
- A bracket/frame label (⌜ ⌝ / ⌞ ⌟) surrounds the price for emphasis
- Updates continuously during real-time bar progression
────────────────────────────────────────────────────────────────────────────────
PRACTICAL TIPS
────────────────────────────────────────────────────────────────────────────────
Using levels as intraday targets
The 50% and 100% levels are the most widely watched. A move to the 50% level
often acts as the first intraday target. A push through the 100% level signals
an unusually strong trending session. Levels above 100% (125%–200%) are most
useful for identifying breakout extensions on high-volatility days.
Choosing the averaging window
Set "Days to Average Range" to 1 to use only yesterday's range — ideal around
major news events when recent conditions are most relevant. Set it to 5 or 10
to smooth out weekly seasonality. Avoid very large values as they dilute the
relevance of current market conditions.
Reducing visual clutter
Disable the extended-range levels (125%–200%) unless you are specifically
trading breakout scenarios. Setting Display Mode to "Today" and reducing the
Horizontal Offset to 8–12 bars keeps the chart clean on lower timeframes.
Daily chart usage
On the Daily timeframe the Fibonacci levels still draw, but the gauge and the
current price label are disabled (they are intraday-only features). The
session logic fires once per day, so each new candle extends the lines
forward by one bar.
Working with multiple sessions (Two Days / Week / All)
Each session gets its own set of lines drawn from that session's open. Older
sessions are progressively deleted when the count exceeds the Display Mode
limit. Switching from "Today" to "Week" mid-session will not retroactively
draw past sessions that have already been cleaned up — it takes effect on the
next session boundary.
────────────────────────────────────────────────────────────────────────────────
QUICK REFERENCE — DEFAULT SETTINGS
────────────────────────────────────────────────────────────────────────────────
Display Mode Today
Days to Average Range 1
Show Labels On
Font Size Small
Text Alignment Right
Horizontal Offset 32
Line Width 1
Line Style Solid
Show Circles On
Circle Size Small
Active Fib Levels 15%, 25%, 40%, 50%, 60%, 75%, 100%
Gauge On
Current Price Label On (intraday ≤ 4H only)
================================================================================
END OF MANUAL
================================================================================
Indicator

Indicator

Cross-Platform Price Offset Dashboard## What it does
A utility dashboard for traders who hold accounts across multiple brokers
or trading platforms where the same underlying instrument quotes at slightly
different prices. The indicator displays, in real time, the equivalent
price of the chart's symbol on up to two external platforms — based on a
fixed offset that you calibrate once, manually.
## Why this exists
Traders who route the same idea to several brokers often see small but
persistent price gaps between platforms: different contract specifications,
broker-specific spreads, rollover timing differences between data feeds,
or CFD-versus-futures pricing on the same underlying. When you mark a
level on PulseWire (entry, stop, target), you still need to translate
that level into the price scale of the platform where the trade is
actually executed. This indicator removes that mental arithmetic.
## How it works
At a single moment of your choosing, you take a simultaneous snapshot of
three values:
1. The current price of the symbol on the PulseWire chart.
2. The price of the same instrument on Platform 1 (for example, your
live MT4 or MT5 account).
3. The price of the same instrument on Platform 2 (another broker or
account).
You enter all three values into the indicator's inputs. From that
moment on, the indicator computes a constant offset for each platform:
offset_1 = platform_1_price − reference_price
offset_2 = platform_2_price − reference_price
It then displays the live equivalent on each platform as:
platform_1_live = close + offset_1
platform_2_live = close + offset_2
If the PulseWire chart moves +20 points, the displayed prices for both
platforms also move +20 points relative to their calibrated baseline.
## How to use
1. Add the indicator to any chart. It is symbol-agnostic and works on
futures, indices, metals, stocks, and crypto.
2. Open the indicator settings, "Calibration" tab.
3. Fill in the three calibration prices, all taken at the same moment
from your platforms.
4. Optionally, rename "Platform 1" and "Platform 2" to your broker names.
5. The dashboard now updates on every tick.
## Inputs
- Reference price at calibration — the chart's price at the moment you
took the snapshot.
- Platform 1 name / Platform 2 name — labels shown in the table.
- Platform 1 price / Platform 2 price at calibration — the corresponding
prices on your external platforms at that same moment.
- Display options — table position, text size (tiny, small, normal,
large, huge), text and background colors, and an optional row that
shows the raw offsets for sanity-checking.
## Assumptions and limitations
- The offset is treated as constant until you recalibrate. If the broker
changes the spread, rolls a contract, or shifts a data-feed timing,
the displayed values will drift away from reality and you should
recalibrate.
- This is a display utility. It does not place orders, generate signals,
or connect to any external broker. All three calibration prices are
entered manually by the user.
- Recalibration is manual. Whenever you observe a meaningful drift on
your real platform, take a fresh snapshot and update the three input
values.
## Notes
- The indicator does not connect to brokers, does not fetch external
data, and does not access any network resource. It operates purely on
the chart's close series and on the three calibration inputs you
provide.
- Displayed prices use the chart symbol's mintick precision, so values
appear at the same precision as your chart.
- The source is fully open. Read the code for the exact formula and the
table-rendering logic.
This script is provided for informational and convenience purposes only
and does not constitute trading advice.
Indicator

Indicator

Indicator

Indicator

Indicator

Indicator

Indicator

Indicator

Indicator

Indicator

Indicator

Indicator

Indicator

Indicator
