OPEN-SOURCE SCRIPT

CQ_(3)_Fibonacci IntraMonth Range v2

814
================================================================================
CQ FIBONACCI INTRAMONTH RANGE 2 — USER MANUAL
Based on Fibonacci IntraDay Range [UkutaLabs] — Adapted to IntraMonth Targets
Pine Script v6 | TradingView 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<line> for all Fibonacci level lines
labels — array<box> for all text label boxes
circles — array<label> 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<line> lines — all Fibonacci level lines for this month
array<box> labels — all text label boxes for this month
array<label> 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<IntraMonthRange> — all active month objects
monthRanges — array<float> — rolling monthly range history
fibMultis — [15,25,40,50,60,75,100,125,150,175,200] (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
================================================================================

Declinazione di responsabilità

Le informazioni e le pubblicazioni non sono intese come, e non costituiscono, consulenza o raccomandazioni finanziarie, di investimento, di trading o di altro tipo fornite o approvate da TradingView. Per ulteriori informazioni, consultare i Termini di utilizzo.