Smart Breakout Targets [WillyAlgoTrader]📡 Smart Breakout Targets is an overlay indicator that detects volatility squeezes using a dual-engine system (Bollinger Band Width compression + ATR contraction), builds adaptive consolidation range boxes, waits for a confirmed impulse candle to break the range, and then automatically places entry, stop-loss, and three take-profit levels based on the breakout's risk distance — with full trade lifecycle tracking that monitors TP/SL hits and marks the outcome directly on the chart.
The core concept: volatility compression precedes expansion. When price coils into a tight range, a breakout from that range tends to produce a directional move proportional to how compressed the range was. This indicator automates the entire workflow: detect the compression, define the range, confirm the breakout, calculate the targets, track the outcome.
Most breakout indicators on PulseWire use a single volatility measure (typically Bollinger Band Width or Keltner Channel squeeze) to detect compression. A single measure can produce false positives — BB Width can narrow during a one-directional drift without true consolidation, or ATR can compress during a holiday session without tradeable structure. This indicator requires both engines to agree: BB Width must be below its threshold AND ATR must be below its compression ratio simultaneously. This dual confirmation eliminates the majority of false squeezes.
🧩 WHY THESE COMPONENTS WORK TOGETHER
A squeeze detector alone tells you volatility is low — but it doesn't give you a range to trade against. A range box alone tells you where support and resistance are — but it doesn't confirm whether the breakout is genuine. An impulse filter alone measures candle quality — but without knowing the range boundaries, it doesn't know what's being broken. And TP/SL levels without range context have no structural anchor.
This indicator connects them into a complete breakout workflow:
BB Width squeeze + ATR compression → Range duration check → Adaptive Donchian range → Resistance/Support zones → Impulse candle confirmation → Filter gate (volume + HTF) → Entry at breakout → SL at opposite boundary + ATR buffer → TP1/TP2/TP3 as R:R multiples → Trade lifecycle tracking → Outcome labeling
The dual squeeze engine defines WHEN compression exists. The minimum squeeze duration confirms the consolidation is established, not momentary. The adaptive Donchian tracks the range boundaries DURING the squeeze (expanding with each new high/low). The impulse filter confirms the breakout candle has sufficient body size relative to ATR. The volume and HTF filters add optional quality gates. And the R:R-based targets anchor to the actual risk distance (entry to opposite range boundary), not to arbitrary ATR multiples.
Removing the dual engine reintroduces single-measure false squeezes. Removing the minimum duration allows momentary vol dips to create ranges. Removing the impulse filter lets weak candles trigger breakouts. Removing the ATR-buffered SL places stops too close to range boundaries. Each component solves a specific failure mode.
🔍 WHAT MAKES IT ORIGINAL
1️⃣ Dual-engine squeeze detection (BB Width + ATR compression).
Two independent volatility measures must agree before a squeeze is confirmed:
Engine 1 — Bollinger Band Width:
bbWidth = (upperBB − lowerBB) / basisBB, where upperBB = SMA(close, len) + mult × stdev(close, len). The BB Width is compared to its own SMA: bbSqueeze = bbWidth < SMA(bbWidth, len) × squeezeThreshold (default 0.6). This detects when the bands are significantly tighter than their recent average.
Engine 2 — ATR Compression:
atrVal = ATR(len/2), atrSma = SMA(ATR, len). Compression = atrVal < atrSma × atrCompressRatio (default 0.75). This detects when absolute volatility (measured by ATR) has contracted below its recent average. The ATR period is half the squeeze length for faster response to volatility changes.
Combined: isSqueeze = bbSqueeze AND atrCompress. Both engines must agree simultaneously. BB Width can narrow during a drift (price moving slowly but directionally) while ATR remains normal — the ATR engine blocks this false squeeze. Conversely, ATR can compress during a holiday while BB Width is normal — the BB engine blocks this. Dual agreement ensures genuine consolidation.
2️⃣ Minimum squeeze duration filter.
A squeeze counter tracks consecutive bars where both engines agree. The range box is only created when the squeeze has lasted at least minSqueezeBars (default 5). This prevents momentary dips in volatility (single-bar BB Width contraction during a large candle, for example) from creating spurious ranges. The counter resets to zero when either engine disagrees.
3️⃣ Adaptive Donchian range boundaries.
When a squeeze begins, the indicator initializes squeezeHigh and squeezeLow from the first bar. On each subsequent bar during the squeeze, the boundaries expand: squeezeHigh = max(squeezeHigh, high), squeezeLow = min(squeezeLow, low). This creates an adaptive Donchian channel that captures the full consolidation range — not just a fixed lookback but the exact range from squeeze start to squeeze end.
If the resulting range exceeds 6× ATR (extreme outlier), it's clamped to 3× ATR above and below the range center. This prevents excessively wide ranges from producing unreachable targets.
The range box also includes a resistance zone (top half-ATR, red-tinted) and a support zone (bottom half-ATR, green-tinted), highlighting the areas where price is most likely to be rejected on a false breakout.
4️⃣ Impulse candle breakout confirmation.
A breakout requires more than just closing beyond the range — the breakout candle must be an impulse candle:
Bullish breakout: close > rangeTop AND close > open AND |close − open| > ATR × impulseMultiplier (default 0.8)
Bearish breakout: close < rangeBottom AND close < open AND |close − open| > ATR × impulseMultiplier
This body size filter ensures the breakout candle has genuine momentum behind it — not a thin wick that barely clips the boundary. The impulse multiplier is configurable: lower values (0.3–0.5) accept weaker candles, higher values (1.0–1.5) require strong conviction bars.
5️⃣ R:R-based TP/SL with ATR-buffered stop.
On breakout, the indicator calculates:
— Entry = close of breakout candle
— Stop Loss = opposite range boundary ± ATR × slBuffer (default 0.5). For a bullish breakout: SL = rangeBottom − ATR × 0.5. The buffer prevents the stop from sitting exactly at the range boundary where it would be clipped by a retest wick.
— Risk distance = |entry − SL|
— TP1 = entry ± risk × tp1RR (default 1.0 = 1:1 R:R)
— TP2 = entry ± risk × tp2RR (default 2.0 = 1:2 R:R)
— TP3 = entry ± risk × tp3RR (default 3.0 = 1:3 R:R)
All levels are drawn as extending lines with price labels, plus linefill zones (red = risk area from entry to SL, green = reward area from entry to TP3).
6️⃣ Trade lifecycle tracking with outcome labels.
After a breakout fires, the indicator actively monitors whether price hits TP1, TP2, TP3, or SL:
TP hit detection: for long trades, high ≥ TPx AND high < TPx (first touch). For short trades, low ≤ TPx AND low > TPx. This ensures each TP is counted exactly once.
Trade close conditions:
— TP3 hit → trade marked as "Win (TP3)" → ✔ label placed on chart → all target lines removed
— SL hit → trade marked as "Loss (SL)" → ✘ label placed on chart → all target lines removed
— New breakout while trade active → previous trade replaced
The dashboard shows: Active / Win (TP3) / Loss (SL) with the last P&L in price units. Close labels include tooltips with full trade details (entry, TP3/SL level, P&L).
7️⃣ Overlap prevention for range boxes.
When enabled (default on), the indicator prevents a new range box from overlapping with an existing one. The squeezeStartBar of a new range must be after the right edge of the most recent existing box. This prevents cluttered, overlapping consolidation zones that would create confusing breakout levels.
8️⃣ Signal strength scoring (0–4).
Each breakout receives a strength score based on how many quality factors are present:
— +1 for impulse candle (always true on breakout, baseline)
— +1 for volume surge (if volume filter enabled and passed)
— +1 for HTF alignment (if HTF filter enabled and aligned)
— +1 for extended squeeze (squeeze duration ≥ 2× minimum)
Classification: Strong (≥3), Medium (≥2), Normal (<2). Displayed in the dashboard.
⚙️ HOW IT WORKS — CALCULATION FLOW
Step 1 — Volatility measurement: BB Width = (upperBB − lowerBB) / basis. ATR computed with period = squeezeLenght / 2. Both compared to their SMAs.
Step 2 — Squeeze detection: isSqueeze = (bbWidth < bbWidthSMA × threshold) AND (ATR < atrSMA × compressionRatio). Counter tracks consecutive squeeze bars.
Step 3 — Range construction: When squeeze starts, init boundaries from first bar's high/low. Each bar during squeeze: boundaries expand to include new highs/lows. Range capped at 6× ATR.
Step 4 — Range box creation: When squeeze ends (isSqueeze transitions from true to false) AND duration ≥ minimum bars AND not overlapping → create range box with resistance/support zones and centerline.
Step 5 — Breakout scan: On each confirmed bar, iterate through existing range boxes. If close > rangeTop with bullish impulse + filter pass → bullish breakout. If close < rangeBottom with bearish impulse + filter pass → bearish breakout. The broken range box is removed.
Step 6 — Target placement: Entry = close. SL = opposite boundary ± ATR buffer. TP1/TP2/TP3 = entry ± risk × R:R multipliers. Lines, labels, and fill zones are drawn.
Step 7 — Trade monitoring: Each bar, check if price touched TP1/TP2/TP3 or SL (first-touch detection using current vs previous bar comparison). On TP3 or SL → close trade, label outcome, remove visuals.
📖 HOW TO USE
🎯 Quick start:
1. Add the indicator — gray range boxes appear at detected consolidation zones
2. Red-tinted zone at top = resistance, green-tinted at bottom = support
3. When price breaks out with an impulse candle → "Long" or "Short" label appears
4. Entry, SL, TP1, TP2, TP3 lines are automatically drawn
5. When price reaches TP3 → ✔ label. When SL hit → ✘ label. Trade auto-closes.
👁️ Reading the chart:
— ⬜ Gray box = consolidation range (detected squeeze zone)
— 🟥 Red-tinted top zone = resistance area within range
— 🟩 Green-tinted bottom zone = support area within range
— ➖ Dashed centerline = range midpoint
— 🟢 "Long" label below bar = confirmed bullish breakout
— 🔴 "Short" label above bar = confirmed bearish breakout
— Green solid line = entry price
— Red dashed line = stop loss
— Green dotted lines = TP1, TP2, TP3 levels
— 🟩 Green fill = reward zone (entry to TP3)
— 🟥 Red fill = risk zone (entry to SL)
— ✔ TP3 label = trade closed at target (win)
— ✘ SL label = trade stopped out (loss)
— 🟡 Yellow background (optional) = active squeeze
📊 Dashboard fields:
— Status: Active / Win (TP3) / Loss (SL)
— Signal: last breakout direction with bars elapsed
— Strength: signal quality (Strong / Medium / Normal)
— Trend: current trade direction
— Squeeze: active status with bar count
— Entry / Stop Loss: current trade levels
— Last P&L: profit/loss of last completed trade
— HTF Bias: higher-timeframe trend direction
— Version / TF
🔧 Tuning guide:
— Too many false squeezes: decrease Squeeze Threshold (0.4–0.5), decrease ATR Compression Ratio (0.6–0.7), increase Min Squeeze Bars (8–12)
— Missing squeezes: increase Squeeze Threshold (0.7–0.8), increase ATR Compression Ratio (0.8–0.9), decrease Min Squeeze Bars (3–4)
— Breakouts too weak: increase Impulse Body Threshold (1.0–1.5), enable Volume Filter
— Stops too tight: increase SL ATR Buffer (0.7–1.0)
— Want only trend-aligned breakouts: enable HTF Trend Filter
— Scalping 1–5M: Squeeze Length 15, Min Squeeze 3, Impulse 0.5, TP1 0.75
— Swing 4H–1D: Squeeze Length 30, Min Squeeze 8, Impulse 1.0, TP3 5.0
⚙️ KEY SETTINGS REFERENCE
⚙️ Main:
— Squeeze Detection Length (default 20): lookback for BB Width and ATR baseline
— BB Multiplier (default 2.0): standard deviation multiplier for Bollinger Bands
— Squeeze Threshold (default 0.6): BB Width must be below this fraction of its SMA
— ATR Compression Ratio (default 0.75): ATR must be below this fraction of its SMA
— Min Squeeze Bars (default 5): minimum consecutive squeeze bars for valid range
— Impulse Body Threshold (default 0.8): breakout candle body ≥ ATR × this value
— Prevent Overlap (default On): no overlapping range boxes
🎯 Targets:
— SL ATR Buffer (default 0.5): extra ATR distance beyond range boundary for stop
— TP1 R:R (default 1.0) / TP2 R:R (default 2.0) / TP3 R:R (default 3.0): risk-to-reward multiples
🔍 Filters:
— Volume Filter (default Off): breakout volume > SMA(20) × multiplier (default 1.5×)
— HTF Trend Filter (default Off): align breakouts with SMA(50) trend on HTF (default Daily)
🎨 Visual:
— Range boxes, resistance/support zones, centerline (all toggleable)
— Breakout signals, target levels, close labels (all toggleable)
— Squeeze background highlight (default Off)
— Configurable label sizes (signal, target, close — separate controls)
— Auto / Dark / Light theme
🔔 Alerts
— 🟢 BULL BREAKOUT / 🔴 BEAR BREAKOUT — ticker, price, SL, TP1, timeframe
— ✅ TP1 HIT / TP2 HIT / TP3 HIT — trade progress
— ✅ TP3 TRADE CLOSED — full win with P&L
— ❌ SL TRADE CLOSED — stopped out with P&L
All support plain text and JSON webhook format. Bar-close confirmed.
⚠️ IMPORTANT NOTES
— 🚫 No repainting. All breakout signals require barstate.isconfirmed. Range boxes are created on the bar after the squeeze ends (confirmed transition). TP/SL hit detection uses first-touch logic (current bar vs previous bar comparison). HTF filter uses + lookahead_on for non-repainting. A warmup period (max of squeeze length and 50 bars) prevents signals during insufficient data.
— 📐 The dual-engine squeeze is not a standard Bollinger/Keltner squeeze . It combines BB Width percentile compression with ATR contraction ratio — both must agree. This is stricter than a single-measure approach and produces fewer but higher-quality consolidation zones.
— ⚖️ The trade is tracked until TP3 or SL — there is no partial close logic. TP1 and TP2 are marked as they're hit (for visual reference and alerts) but the trade remains open until the final outcome. You can manage partial closes manually using the TP1/TP2 alerts.
— 📊 Signal strength reflects how many quality factors aligned at the time of breakout. A "Strong" signal had volume surge, HTF alignment, AND extended squeeze — but strength does not predict outcome.
— 🔄 If a new breakout occurs while a trade is active, the previous trade is replaced. The indicator tracks one trade at a time.
— 📏 Range box boundaries are adaptive Donchian — they expand during the squeeze to capture every high and low. They do not contract. This means the range can be wider than the BB Width suggests if a spike occurred during the squeeze.
— 🛠️ This is a breakout detection and target visualization tool , not an automated trading bot. It identifies squeeze zones, confirms breakouts, and places structural targets — trade decisions remain yours.
— 🌐 Works on all markets and timeframes. Volume filter auto-adapts to instruments without volume data. Indicator

Automatic Fibonacci Levels [WillyAlgoTrader]Automatic Fibonacci Levels is an overlay indicator that detects the dominant swing high and swing low within the visible chart area, draws a full Fibonacci retracement and extension grid between them, highlights the Optimal Trade Entry (OTE) zone at 61.8%–78.6%, marks a target zone at the −50% to −61.8% extension, and labels four take-profit levels — all updating automatically as you scroll or zoom the chart.
Most Fibonacci tools on PulseWire are either manual (you draw them yourself and they become stale as price evolves) or pivot-based (anchored to a fixed lookback period that may not match the swing you're actually looking at). This indicator takes a different approach: it uses the visible chart range as its context. It finds the highest high and lowest low within what you can currently see, determines trend direction based on which came first, and draws the full Fibonacci grid accordingly. When you scroll or zoom to a different area, the grid adapts — making it a dynamic analysis companion rather than a static drawing tool.
🔍 WHAT MAKES IT ORIGINAL
1. Visible-range swing detection. Instead of using a fixed pivot lookback or requiring manual anchor placement, the indicator scans the chart's visible window (chart.left_visible_bar_time to chart.right_visible_bar_time) to find the absolute high and low. This means the Fibonacci grid always reflects the swing structure you are currently analyzing. Zoom into a 50-bar range to see intraday retracements; zoom out to 500 bars to see the macro structure — the grid adjusts automatically. When the visible range changes (scroll or zoom), swing detection resets and recalculates.
2. Automatic trend direction from swing sequence. The indicator determines bullish or bearish bias by comparing when the swing low and swing high occurred. If the swing low formed first and the swing high formed later, the trend is classified as bullish (retracement levels are drawn down from the high, extensions project upward). If the swing high came first, the trend is bearish (retracement down from the low, extensions project downward). No manual input is needed — the grid orientation follows the price structure.
3. OTE Entry Zone + Target Zone as highlighted boxes. Two key zones are highlighted with semi-transparent boxes:
— Entry Zone (61.8%–78.6%) : the Optimal Trade Entry area from ICT/SMC methodology — the deep retracement zone where institutional re-entry is most likely
— Target Zone (−50% to −61.8%) : the extension zone where breakout moves frequently reach
Both zones have configurable colors and optional text labels ("ENTRY ZONE" / "TARGET ZONE") inside them. Zone-touch alerts fire when price enters either box for the first time.
4. Four labeled take-profit levels. TP labels are placed at key Fibonacci levels to provide a structured scale-out framework:
— TP1 at 38.2% (first retracement target — conservative exit)
— TP2 at 0% (full swing retest — swing high in uptrend, swing low in downtrend)
— TP3 at −27.2% (first Fibonacci extension)
— TP4 at −61.8% (deep extension — runner target)
Each TP level is only displayed if the corresponding Fibonacci line is enabled, keeping the chart clean.
5. 16 individually toggleable levels. The indicator supports a comprehensive set of levels: 0%, 23.6%, 38.2%, 50%, 61.8%, 70.6%, 78.6%, 100% (standard retracements), plus 18%, 150%, 200% (deep retracements), and −18%, −27.2%, −50%, −61.8%, −100% (extensions). Each level can be toggled on or off independently, so you can configure exactly the grid density you prefer — from a minimal 4-level setup to a full 16-level deep analysis.
⚙️ HOW IT WORKS
Swing detection:
On every bar, the script checks whether the current bar falls within the chart's visible time window (using chart.left_visible_bar_time and chart.right_visible_bar_time). Within this window, it tracks the highest high and lowest low, along with their bar indices. When the visible window changes (scroll/zoom), all swing data resets and recalculates from scratch. This ensures the grid always reflects your current view.
Trend direction:
If swingLowBarIdx < swingHighBarIdx (low came first), the trend is classified as bullish — Fibonacci levels count downward from the swing high (0% = high, 100% = low), and extensions project above the high. If the high came first, the trend is bearish — levels count upward from the swing low, extensions project below.
Level calculation:
Each Fibonacci level is calculated as: price = anchor ± (swingRange × ratio), where the anchor and direction depend on the trend bias. For a bullish trend: 0% = swingHigh, 61.8% = swingHigh − range × 0.618, −50% = swingHigh + range × 0.5. For bearish: mirrored.
Zone detection:
The Entry Zone (61.8%–78.6%) and Target Zone (−50% to −61.8%) are computed as price ranges. On each confirmed bar, the script checks if the close falls within either zone. A zone-touch alert fires on the first confirmed bar inside the zone (no repeated alerts while price stays in the zone). The inEntryZone / inTargetZone state resets when price leaves, allowing re-entry detection.
Drawing:
All visual elements (lines, labels, boxes) are drawn on barstate.islast and cleaned up on each redraw to prevent accumulation. Lines extend from 2 bars before the current bar to the label offset position. Zones use extend.right so they remain visible as new bars form.
📖 HOW TO USE
Reading the chart:
— Orange horizontal lines = Fibonacci levels (retracement + extensions)
— Optional % labels next to each line = level identification
— Gold semi-transparent box = Entry Zone (61.8%–78.6% OTE)
— Gold semi-transparent box with "TARGET ZONE" = extension target (−50% to −61.8%)
— TP1–TP4 labels = structured take-profit levels
— Optional diagonal line = swing connection (low-to-high or high-to-low)
Suggested workflow:
— Zoom to the swing you want to analyze — the grid adapts automatically
— In a bullish trend: look for buy entries when price retraces into the Entry Zone (61.8%–78.6%), with stop loss below 100% (swing low), targeting TP1 (38.2%) → TP2 (0% / swing high) → TP3 (−27.2%) → TP4 (−61.8%)
— In a bearish trend: look for sell entries when price retraces up into the Entry Zone, stop above swing high, targeting downward extensions
— Use the dashboard to confirm trend direction and monitor whether price is currently in the Entry or Target zone
— Set alerts for zone touches to get notified when price reaches OTE or target levels without watching the chart
Customization tips:
— For a clean chart: enable only 0%, 61.8%, 78.6%, 100%, −27.2%, −61.8% — this gives you the OTE boundaries, swing anchors, and two extension targets
— For deep analysis: enable all 16 levels to see the full Fibonacci structure
— Adjust Label Offset to move level labels further right if your chart is crowded
— Toggle Show Diagonal Swing Line to visually confirm which high/low pair is being used
⚙️ KEY SETTINGS REFERENCE
— Show All Elements (default On): master toggle for all Fibonacci visuals
— Line Width (default 1): thickness of Fibonacci lines (1 = subtle, 5 = bold)
— Line Style (default Dashed): solid, dashed, or dotted
— Label Offset (default 17 bars): how far right of the last bar to place labels
— Individual Levels : 16 toggleable levels from 200% to −100%
— Show Entry Zone (default On): highlight the 61.8%–78.6% OTE box
— Show Target Zone (default On): highlight the −50% to −61.8% extension box
— Show Text in Zones (default On): display "ENTRY ZONE" / "TARGET ZONE" labels
— Show TP Labels (default On): display TP1–TP4 at key levels
— Show Level % Labels (default Off): display percentage text next to each line
📊 Dashboard
The info panel displays:
— Trend direction (Bullish / Bearish) based on swing sequence
— Signal status (Entry Zone / Target Zone / —) when price enters a key zone
— Swing range in price units
— Current timeframe and indicator version
🔔 Alerts
Two alert conditions (each fires once per zone entry on bar close):
— Entry Zone touch : price closes inside the 61.8%–78.6% retracement zone
— Target Zone touch : price closes inside the −50% to −61.8% extension zone
Both support standard text and JSON webhook format.
⚠️ IMPORTANT NOTES
— This indicator anchors to the visible chart range — it recalculates when you scroll or zoom. This is a feature, not a bug: it lets you analyze any swing by simply framing it on your screen. However, it means the grid will change if you move the chart.
— Fibonacci levels are not predictive — they are reference points based on the measured swing range. Price may or may not react at any given level.
— The Entry Zone (61.8%–78.6%) is derived from the OTE concept used in ICT/SMC methodology. It represents a high-probability retracement area, but no retracement zone guarantees a reversal.
— Zone alerts require bar-close confirmation and fire once per entry — they do not repeat while price remains in the zone.
— Works across all asset classes and timeframes. No volume data required. Indicator

Squeeze Breakout Pro [WillyAlgoTrader]Squeeze Breakout Pro (SBP) is an overlay indicator that detects volatility compression zones where Bollinger Bands contract inside a Keltner Channel, waits for a confirmed directional breakout with volume and momentum validation, and then maps a complete trade framework: structural stop loss at the opposite side of the range, and three take-profit targets calculated as R-multiples of the range width using Fibonacci-based extensions. A built-in dashboard tracks TP hit rates across the chart's history so you can evaluate the setup's statistical behavior on any instrument and timeframe.
The concept of a "squeeze" — Bollinger Bands narrowing inside Keltner Channels — has been around for decades. What SBP adds is a structured decision pipeline: it doesn't just flag the squeeze, it qualifies it with ADX to confirm a genuine range-bound condition, requires volume confirmation on the breakout bar, defines exact entry/SL/TP levels, and tracks how often each target is reached — turning a raw volatility observation into a repeatable trade setup with measurable outcomes.
🔍 WHAT MAKES IT ORIGINAL
1. Squeeze qualification via ADX filter. A standard BB-inside-KC squeeze fires frequently and includes many false compressions during trending pullbacks. SBP adds an ADX filter that requires the Average Directional Index to be below a user-defined threshold (default 21) during the squeeze phase. This ensures the consolidation is a genuine range-bound condition — not a brief pause in a strong trend that would produce a low-quality breakout. The combination of BB/KC compression + low ADX produces significantly fewer but higher-quality squeeze zones.
2. Minimum squeeze duration requirement. Not every momentary BB/KC overlap deserves attention. SBP requires a configurable minimum number of consecutive squeeze bars (default 5) before the range is considered valid. Short, fleeting compressions are ignored. This filters out the noise that plagues most squeeze indicators on lower timeframes.
3. Structural stop loss with ATR padding. Instead of a fixed-pip or fixed-percentage stop, SBP places the stop loss at the opposite boundary of the detected consolidation range — the natural structural level — plus a configurable ATR-based padding (default 20% of ATR). For a bullish breakout, SL sits below the range low; for bearish, above the range high. This gives the stop a structural reason to exist, tied to the actual price action that formed the squeeze.
4. R-multiple targets using Fibonacci extensions. Take-profit levels are calculated as multiples of the range width projected from the entry price:
— TP1 at 0.618× range width (conservative, first scale-out)
— TP2 at 1.0× range width (full range projection)
— TP3 at 1.618× range width (golden ratio extension)
All three multipliers are fully configurable. The range width serves as the natural "R" unit because it represents the energy stored during compression — wider ranges store more energy and project further.
5. Built-in TP/SL hit-rate tracking. The dashboard counts every breakout signal on the visible chart and tracks how many times each TP level was reached versus how many times the SL was hit. This gives you an instant statistical profile of the setup's behavior on the current instrument and timeframe — no external backtesting tool required. The hit rates update in real time as new signals form.
6. Overlap prevention. An optional toggle (on by default) prevents a new squeeze zone from forming if it would overlap with the previous one, avoiding redundant signals in choppy markets where squeezes cluster.
⚙️ HOW IT WORKS
Step 1 — Squeeze detection:
On each bar, the script calculates Bollinger Bands (SMA ± StdDev × multiplier) and a Keltner Channel (SMA ± ATR × multiplier) using the same base length. When both BB boundaries sit inside both KC boundaries (upper BB < upper KC AND lower BB > lower KC), the market is in a squeeze. If the ADX filter is enabled, the squeeze is only valid when ADX is also below the threshold — confirming low directional momentum.
Step 2 — Range construction:
While the squeeze is active, the script tracks the highest high and lowest low across all squeeze bars, building a dynamic range box. When the squeeze condition ends (BB expands beyond KC or ADX rises), the range is locked — but only if the squeeze lasted at least the minimum required bars. The locked range defines the consolidation zone for breakout detection.
Step 3 — Breakout confirmation:
After the range is locked, the script watches for a confirmed bar close above the range high (bullish breakout) or below the range low (bearish breakout). If volume confirmation is enabled, the breakout bar must also have volume exceeding the SMA(volume) × the configured multiplier. All breakout signals require barstate.isconfirmed — they trigger only on bar close and do not repaint.
Step 4 — Trade framework:
On breakout, the script calculates and plots:
— Entry: the breakout bar's close price
— SL: opposite range boundary ± ATR padding
— TP1 / TP2 / TP3: entry ± (range width × configured multipliers)
These levels extend forward as horizontal lines with a risk/reward fill zone until a target or stop is hit. When TP3 or SL is reached (bar close), the trade is closed and levels stop extending.
Step 5 — Hit tracking:
Each TP level and the SL are monitored on every confirmed bar after entry. When price touches (via high/low) a TP level, it is marked as hit. If SL is hit before TP3, the trade closes at a loss. The dashboard aggregates these outcomes across all signals on the chart.
Volume on forex:
On instruments without volume data (common on forex), the volume filter is automatically bypassed — so the indicator works seamlessly across asset classes without manual adjustment.
📖 HOW TO USE
Reading the chart:
— Yellow-tinted boxes = detected squeeze zones (consolidation ranges)
— "Long" label below bar = confirmed bullish breakout
— "Short" label above bar = confirmed bearish breakout
— Green line = entry level
— Red dashed line = stop loss
— Dotted/solid green lines = TP1 / TP2 / TP3
— Green-tinted fill between entry and TP3 = reward zone
— Red-tinted fill between entry and SL = risk zone
Suggested workflow:
— Wait for a squeeze zone to form and lock (box appears, disappears when squeeze ends)
— Dashboard shows "Pending" when a valid range is ready for breakout
— On breakout, evaluate the signal: check TP/SL levels, assess the range width, and decide position size based on the distance to SL
— Use TP1 for conservative partial exit, TP2 for second scale-out, TP3 for runner
— Review the TP1/TP3 hit rates in the dashboard to calibrate your expectations for the current instrument
Timeframe guidance:
— Scalping (1–5min): Squeeze Length 10–15, Min Squeeze Bars 3–5, ADX threshold 25
— Intraday (15min–1H): Squeeze Length 15–20, Min Squeeze Bars 5–8, default settings
— Swing (4H–Daily): Squeeze Length 20–30, Min Squeeze Bars 8–15, ADX threshold 18–20
— The longer the squeeze and higher the timeframe, the more energy stored → larger projected targets
⚙️ KEY SETTINGS REFERENCE
— Squeeze Length (default 13): shared period for BB and KC — higher = detects longer consolidations
— BB Multiplier (default 2.0): Bollinger Bands standard deviation multiplier
— KC Multiplier (default 1.2): Keltner Channel ATR multiplier — the gap between BB and KC multipliers controls how easily a squeeze triggers
— ADX Filter (default On): require low directional movement during squeeze
— ADX Threshold (default 21): maximum ADX value for valid squeeze — lower = stricter
— Volume Confirmation (default On): require volume spike on breakout bar (auto-disabled on forex)
— Volume Spike Mult (default 1.3): breakout volume must exceed SMA × this multiplier
— Min Squeeze Bars (default 5): minimum consecutive squeeze bars for valid range
— Prevent Overlap (default On): no new squeeze zone if it overlaps the previous one
— TP1 / TP2 / TP3 (default 0.618 / 1.0 / 1.618): take-profit as R-multiples of range width
— SL Padding (default 0.2): extra padding beyond range boundary, as fraction of ATR
📊 Dashboard
The info panel (adjustable to any chart corner) displays:
— Current squeeze status (Active with bar count, or None)
— Trade direction (Long / Short / —)
— Signal state (Active / Pending / Wait)
— ADX value with color coding (green if below threshold, red if above)
— Total breakout count (Long / Short split)
— TP1 and TP3 hit rates as percentages across all signals on chart
— Current timeframe and indicator version
⚠️ IMPORTANT NOTES
— This indicator does not repaint. All breakout signals require bar-close confirmation (barstate.isconfirmed).
— The TP hit rates shown in the dashboard are historical statistics on the current chart , not predictions. They depend entirely on the instrument, timeframe, and date range visible. A 70% TP1 hit rate on past data does not guarantee 70% going forward.
— SBP provides a structured trade framework (entry/SL/TP), but it is not a complete trading system . Position sizing, risk management, and trade selection remain the trader's responsibility.
— Not every squeeze produces a clean breakout. Some ranges resolve with choppy, directionless price action. The ADX filter and volume confirmation reduce this, but cannot eliminate it entirely.
— The indicator works across all asset classes — stocks, crypto, forex, futures, commodities. Volume features auto-adapt to instruments without volume data. Indicator

Wedge Pattern [UAlgo]Overview
Wedge Pattern is a chart overlay that detects rising and falling wedge formations using strict pivot based rules and a validation engine that enforces classic technical analysis requirements. The script builds two trendlines from confirmed pivot highs and pivot lows, verifies that both boundaries converge toward an apex in the future, and ensures that price remains contained within the wedge until a valid breakout occurs.
The indicator is designed to reduce subjective pattern drawing. It requires a minimum number of touches on each boundary, checks that no candle closes outside the wedge during formation, and treats the wedge as invalid if price breaks in the wrong direction or if the two boundaries collapse into each other. When a breakout is confirmed, the script updates the wedge label and can project a measured target based on the initial wedge width.
This tool is meant for traders who want automatic, rules driven wedge identification with clear status states, breakout confirmation, and optional target projection on the chart.
🔹 Features
1) Pivot Based Wedge Construction
The script identifies swing highs and swing lows using pivot detection. Each confirmed pivot is stored as a Coordinate containing bar index and price. When enough pivots exist, the script forms:
An upper trendline from the earliest required pivot high to the most recent pivot high
A lower trendline from the earliest required pivot low to the most recent pivot low
Pivot Left and Pivot Right control swing sensitivity. Larger values produce fewer but stronger pivots. Smaller values react faster but may include minor swings.
2) Minimum Touch Requirement Per Boundary
A wedge is only considered valid when there are at least a user defined number of pivot touches for both the upper and lower boundary. This aligns with standard charting practice where two points draw a line, but three points validate it.
Min Touches per Line controls the minimum pivot count required before a wedge can be formed.
3) Objective Wedge Type Classification
After calculating slopes for the upper and lower trendlines, the script classifies wedge type using slope direction and relative steepness:
Rising wedge requires both slopes to be positive and the lower slope to be steeper than the upper slope
Falling wedge requires both slopes to be negative and the upper slope to be steeper than the lower slope in the negative direction
This ensures convergence and distinguishes wedges from simple channels.
4) Apex Projection and Future Convergence Rule
The wedge apex is computed as the intersection point of the two trendlines. A valid wedge requires the apex index to be in the future. This confirms that the boundaries are converging and that the pattern is not already expired at detection time.
5) Mandatory Containment Rule During Formation
A core validation rule enforces that no closes occur outside the wedge boundaries while the wedge is forming. If any close is above the upper boundary or below the lower boundary by at least one tick, the candidate wedge is rejected. This prevents premature breakouts from being treated as valid patterns.
6) Live Updating Boundaries
Once a wedge becomes active, the script extends both boundary lines on every bar by updating their end coordinates using the trendline slope. This keeps the wedge aligned with current time and allows breakout checks to remain accurate.
7) Breakout Detection and Status Labeling
The script defines correct breakouts by wedge type:
Rising wedge is bearish biased, so a valid breakout is a close below the lower boundary
Falling wedge is bullish biased, so a valid breakout is a close above the upper boundary
When a valid breakout occurs, the wedge status is updated to BROKEOUT and the label color reflects direction. If price breaks the opposite boundary, or if boundaries collapse, the wedge is marked FAILED.
8) Target Projection Using Measured Move
If enabled, the script projects a target line after breakout. The target distance is based on the wedge width measured near the start of the pattern, then projected from the breakout boundary:
For a rising wedge breakdown, the target is placed below the lower boundary by the measured width
For a falling wedge breakout, the target is placed above the upper boundary by the measured width
A target label prints the projected price level.
🔹 Calculations
1) Pivot Detection and Coordinate Storage
Swing points are detected using symmetric pivots:
float ph = ta.pivothigh(high, INPUT_PIVOT_LEFT, INPUT_PIVOT_RIGHT)
float pl = ta.pivotlow(low, INPUT_PIVOT_LEFT, INPUT_PIVOT_RIGHT)
Confirmed pivots are stored using the pivot right offset so the bar index matches where the pivot actually formed:
if not na(ph)
pivot_highs.push(Coordinate.new(bar_index - INPUT_PIVOT_RIGHT, ph))
if not na(pl)
pivot_lows.push(Coordinate.new(bar_index - INPUT_PIVOT_RIGHT, pl))
Arrays are capped to keep only recent pivot history.
2) Trendline Construction and Slope Calculation
When enough pivots exist, the script picks the earliest required touch and the most recent touch for both highs and lows, then builds trendlines:
Coordinate p1h = pivot_highs.get(pivot_highs.size() - MIN_TOUCHES_PER_LINE)
Coordinate pNh = pivot_highs.get(pivot_highs.size() - 1)
Trendline tl_up = Trendline.new(p1h, pNh, 0.0, na)
tl_up.slope := tl_up.calc_slope()
Slope is defined as:
(this.end.price - this.start.price) / (this.end.index - this.start.index)
The same logic is used for the lower trendline from pivot lows.
3) Wedge Type Rules
Wedge type is derived from slope sign and convergence:
Rising wedge:
if tl_up.slope > 0 and tl_lo.slope > 0 and tl_lo.slope > tl_up.slope
w_type := 1
Falling wedge:
if tl_up.slope < 0 and tl_lo.slope < 0 and tl_up.slope < tl_lo.slope
w_type := 2
This ensures both boundaries move in the same direction while converging.
4) Apex Index Calculation
The apex index is calculated from the line intersection of the two trendlines:
float apex_x = (y2 - y1 + m1 * x1 - m2 * x2) / (m1 - m2)
math.round(apex_x)
A candidate wedge is only accepted if apex index is greater than the current bar index.
5) Containment Validation Using Close Prices
The script checks each bar from the wedge start to the current bar to ensure that close remains within boundaries:
float up_p = this.upper.get_price_at(i)
float lo_p = this.lower.get_price_at(i)
float c_p = close
if c_p > up_p + syminfo.mintick or c_p < lo_p - syminfo.mintick
violated := true
If violated is true, the wedge is rejected.
6) Live Boundary Update and Breakout Checks
For active wedges, end coordinates are updated each bar using the projected boundary price:
line.set_y2(w.upper.line_id, w.upper.get_price_at(bar_index))
line.set_y2(w.lower.line_id, w.lower.get_price_at(bar_index))
Breakout checks use the current close against projected boundary prices:
bool b_up = close > u_p
bool b_dn = close < l_p
Correct breakout:
Rising wedge requires b_dn
Falling wedge requires b_up
Invalidation:
Rising wedge fails if b_up
Falling wedge fails if b_dn
Any wedge fails if upper boundary price is less than or equal to lower boundary price
7) Target Projection
Measured width is derived from the initial distance between boundaries near the start of the wedge, then projected from the breakout side:
float m = math.abs(w.upper.start.price - w.lower.get_price_at(w.upper.start.index))
float t = w.is_rising ? l_p - m : u_p + m
The target line and label are drawn forward a fixed number of bars to provide a clear reference after breakout. Indicator

Indicator

ZenAlgo - ABCThis indicator identifies a three-point price structure (X, A, B) and projects proportional price levels forward from point B. It uses either automatically detected swing points or manually selected anchors and then builds a forward projection framework based on the relative movement between X and A.
1. Anchor Point Selection (X, A, B)
The script first determines three key price points that define the reference movement.
Automatic mode
When manual anchors are disabled, the indicator scans historical bars to detect local highs and lows using a fixed number of bars on the left and right side. A pivot high is confirmed only after enough future bars exist, and the same applies to pivot lows. This avoids using information that is not yet available in real time.
Detected pivots are stored in sequence:
The previous confirmed pivot becomes X
The next confirmed pivot becomes A
The most recent confirmed pivot becomes B
To avoid repeatedly using the same type of pivot, the script alternates between highs and lows. This ensures that X, A, and B always represent a swing structure instead of a flat sequence.
Manual mode
When manual anchors are enabled, the user defines three timestamps. The script captures the price and bar index at those times. After all three points are collected, the script adjusts them to represent true extremes inside their bars. Depending on direction, it replaces closes with highs or lows so that X and A form a valid swing, and B represents a corrective endpoint.
If manual anchors are incomplete, the script falls back to the automatic pivots.
2. Validation and Direction Detection
After anchors are collected, the script checks whether all three points are available. If any of them is missing, no projection is drawn.
When X, A, and B exist, the script determines the directional context:
If A is above X, the structure is treated as bullish
If A is below X, the structure is treated as bearish
The vertical distance between X and A defines the reference movement. This distance is treated as the base unit for all further projections.
This approach assumes that the impulse move from X to A represents the dominant directional leg, and that B represents a retracement or pause within that structure.
3. Projection Calculation
All projected levels are derived from the difference between X and A and are applied starting from point B.
For each predefined ratio:
In bullish structures, the distance from X to A is added upward from B
In bearish structures, the distance is subtracted downward from B
This produces a set of horizontal price levels that are proportional to the initial impulse.
No fixed price values are used. All levels scale automatically with market volatility and with the size of the X–A movement.
4. Configurable Levels and Naming
The indicator defines a list of projection ratios that represent retracement, extension, and continuation zones. Each level can be enabled or disabled and has an adjustable color and transparency.
Each level may be displayed in two ways:
As a descriptive name combined with the ratio
As a numeric ratio combined with the projected price
The naming system maps specific ratios to semantic labels such as base, entry, intermediate targets, main target, and extended continuation levels. These names are fixed in the script and reflect their relative position in the projection structure.
5. Visual Construction
On the most recent bar, the script clears all previously drawn elements and rebuilds the full structure.
It then draws:
A dashed line from X to A and from A to B to visualize the underlying swing
Labels at X, A, and B with direction-aware placement
Horizontal lines from B into the future for each enabled level
Text labels at the end of each level line
All level lines extend a configurable number of bars to the right of the current bar, creating a forward projection area.
Transparency values are fixed to maintain visual consistency and to avoid obscuring price action.
6. Zone Construction
In addition to individual lines, the script can draw shaded zones between selected pairs of levels.
These zones include:
A retracement zone between two closely spaced mid-range ratios
A target zone between the main extension levels
An extended continuation zone above or below the main target
Zones are drawn as semi-transparent rectangles from point B to the right extension limit. Their vertical boundaries are defined by the corresponding projected levels.
These zones highlight areas where price interaction with multiple proportional levels is expected.
7. Display and Update Logic
The drawing process runs only on the most recent bar. This prevents excessive historical objects and ensures that projections always reflect the latest confirmed X, A, and B.
All graphical objects are stored internally and deleted before redrawing. This avoids overlap and keeps the chart synchronized with the current structure.
8. Interpretation of Levels
The projected levels represent proportional price distances derived from the prior impulse.
They should be interpreted as:
Reference zones for potential reactions
Areas of interest for continuation or exhaustion
Context for managing existing positions
Lower ratios correspond to shallow projections near B. Higher ratios correspond to extended moves away from B.
No level represents a guaranteed support or resistance. All values are conditional on the validity of the underlying X–A–B structure.
9. Practical Usage
Typical usage follows this workflow:
Wait for the script to confirm X, A, and B
Observe whether the structure is bullish or bearish
Use projected levels as reference for planning entries, exits, and risk placement
Re-evaluate when a new pivot replaces X, A, or B
Manual anchors can be used when the user wants to enforce a specific structure that differs from the automatic pivot logic.
The indicator is designed for contextual analysis rather than standalone signal generation.
10. Limitations and Disclaimers
This indicator depends on confirmed pivots. In fast or highly volatile markets, pivot confirmation can lag, which delays projections.
Structures may be invalidated when:
Price forms new extremes before a pivot is confirmed
Market conditions change abruptly
Range-bound markets produce frequent small pivots
In such conditions, projected levels may shift frequently or lose relevance.
The method assumes that past impulse size is a meaningful reference for future movement. This assumption does not hold in all market regimes.
The indicator does not incorporate volume, order flow, trend filters, or volatility regimes. It should therefore be combined with additional analysis.
11. Relationship to Manual Fibonacci and ABC Tools
Unlike standard manual Fibonacci retracement or projection tools, this indicator does not rely on subjective anchor placement. In automatic mode, swing points are selected using a fixed pivot detection process, which enforces consistent structural rules.
Anchor points are derived from confirmed price pivots instead of manual selection
The X–A–B structure is maintained automatically as new swings form
All projection levels and zones are recalculated and redrawn dynamically
This removes the need for repeated manual adjustments when market structure changes.
Compared to typical ABC projection tools, the script formalizes the entire workflow. The selection of reference points, the construction of proportional levels, and the management of graphical objects are handled programmatically. This prevents inconsistent anchor choices, reduces user interpretation bias, and ensures that projections always reflect the most recent validated structure.
The integrated zone construction further extends standard projection methods by grouping related levels into continuous price regions, rather than displaying only isolated horizontal lines.
Summary
This script identifies swing-based X–A–B structures using confirmed pivots or manual anchors, measures the impulse between X and A, and projects proportional levels from B. All displayed lines and zones are derived from this single reference movement and update dynamically as new pivots appear. The indicator provides a structured projection framework based on historical price geometry rather than predictive signals.
Indicator

Indicator

Indicator

Intuitive Predictive MACD TargetsThis indicator uses Reverse Engineering math to calculate the exact price the market needs to reach for specific MACD events to happen on the current bar.
Standard MACD is a lagging indicator—you usually wait for the candle to close to confirm a signal. This script changes that by drawing "Finish Lines" on your chart, showing you exactly where price must go right now to trigger a Crossover or a Momentum Hook.
The "Reverse Engineering" Concept
Instead of calculating MACD from Price, we calculate the Required Price from the Target MACD.
Q: "At what price will the MACD line cross the Signal line?"
A: The script solves this and draws the Green/Red "Crossover" Line.
Key Features
1. Three Distinct Targets
Crossover Target (PCO/NCO): The exact price needed to trigger a Buy/Sell signal on the current candle.
Dynamic Coloring: Turns Green if price needs to go UP to cross, Red if price needs to go DOWN.
Settlement Target (The Hook): The exact price where the MACD momentum flattens out (Angle = 0). If price touches this Orange Dashed Line, the trend is likely pausing or preparing to reverse.
Zero Cross Target: The price needed for MACD to reclaim the Zero Line.
2. Smart "Staggered" Labels (No Overlap)
Unlike other scripts where text piles up and becomes unreadable, this indicator automatically spreads labels horizontally.
Crossover info stays near the price.
Settlement info is shifted to the right.
Zero info is shifted further right.
Result: You can read all three targets clearly, even if the prices are almost identical.
3. Full Customization
Line Length: Choose "Infinite" to see targets as Support/Resistance levels across the screen, or "Short" to keep your chart background clean.
Text Visibility: Option to force text to White or Black for high contrast on Dark/Light themes.
Styles: Fully adjustable colors, line widths, and styles (Solid, Dashed, Dotted) for each target type.
How to Use
The "Finish Line" Strategy: If you are Long, and the Red NCO Line appears just below the current price, be cautious. It means a very small drop will confirm a Bearish Cross.
Momentum Checks: Watch the Orange "Settlement" Line.
If price is moving away from the Orange line, the trend is accelerating (Safe to hold).
If price touches the Orange line, momentum has died (Consider taking profit).
Settings
Visual Settings: Change Line Length (Infinite/Short) and Text Color.
MACD Settings: Standard inputs (Default 12, 26, 9).
Toggles: Option to show/hide the Zero Line target. Indicator

Indicator

Risk ModuleThis indicator provides a visual reference for position sizing and approximate stop and target placement. It supports trade planning by calculating equalized risk per trade and maintaining consistent exposure across different markets.
For more information about the concept, see the post Position Sizing and Risk Management .
Fixed Fractional Risk
The indicator calculates the number of shares that can be traded to maintain consistent monetary risk. The formula is based on the distance between the current price and stop reference, adjusting position size proportionally. A closer stop results in a larger position size, while a wider stop results in a smaller one.
Position Size = (Account Size × Risk %) ÷ (Entry Price – Stop Price)
Stop and Target
Stop placement is derived from volatility using the Average True Range (ATR). The target is plotted as a multiple of the stop distance, defining the risk-to-reward relationship in R units.
Stop = Price ± ATR × Multiplier
Target = Price ± (R × Risk Distance)
Chart Elements
The stop and target levels are plotted above and below the current price, with the stop marked by a red dot and the target by a green dot. The information table displayed on the chart shows the number of shares to trade, stop level, and target level.
Setup and Configuration
This configuration only needs to be set once, but can be adjusted later if preferred.
1. Start by setting the account size and risk percentage per trade to define the monetary amount risked on each trade. These values form the basis for position size calculation.
2. Set the ATR multiplier to determine stop distance, common values range between 1 and 3 ATR. Lower values place stops closer to price, increasing sensitivity but risking short-term noise. Higher values widen the stop, which reduces noise impact but extends time in risk.
3. Set the R-multiple to determine target distance relative to the stop. A value of 1 represents a 1:1 risk-to-reward relationship. Lower values reduce potential reward but tend to increase win rate, whereas higher values increase potential reward but tend to reduce win rate. The selection depends on system characteristics and trade expectancy.
When the parameters are defined, the indicator displays the stop, target, and calculated position size on the chart. All that remains is to enter the trade with the number of shares shown in the table and place bracket orders at the plotted stop and target levels.
Settings Overview
Account Size / Risk %: Defines account capital and per-trade exposure.
ATR Multiplier: Adjusts stop distance relative to volatility.
R Multiple: Sets target distance relative to stop (risk-reward ratio).
Position: Choose Long or Short direction.
Table Position: Controls information table placement and scale.
Indicator

Indicator

% / ATR Buy, Target, Stop + Overlay & P/L% / ATR Buy, Target, Stop + Overlay & P/L
This tool combines volatility‑based and fixed‑percentage trade planning into a single, on‑chart overlay—with built‑in profit‑and‑loss estimates. Toggle between ATR or percentage modes, plot your Buy, Target and Stop levels, and see the dollar gain or loss for a specified position size—all in one interactive table and chart display.
NOTE: To activate plotted lines, price labels, P/L rows and table values, enter a Buy Price greater than zero.
What It Does
Mode Toggle: Choose between “ATR” (volatility‑based) or “%” (fixed‑percentage) calculations.
Buy Price Input: Manually enter your entry price.
ATR Mode:
Target = Buy + (ATR × Target Multiplier)
Stop = Buy − (ATR × Stop Multiplier)
Percentage Mode:
Target = Buy × (1 + Target % / 100)
Stop = Buy × (1 – Stop % / 100)
P/L Estimates: Specify a dollar amount to “invest” at your Buy price, and the script calculates:
Gain ($): Profit if Target is hit
Loss ($): Cost if Stop is hit
Visual Overlay: Draws horizontal lines for Buy, Target and Stop, with optional price labels on the chart scale.
Interactive Table: Displays Buy, Target, Stop, ATR/timeframe info (in ATR mode), percentages (in % mode), and P/L rows.
Customization Options
Line Settings:
Choose color, style (solid/dashed/dotted), and width for Buy, Target, Stop lines.
Extend lines rightward only or in both directions.
Table Settings:
Position the table (top/bottom × left/right).
Toggle individual rows: Buy Price; Target (multiplier or %); Stop (multiplier or %); Target ATR %; Stop ATR %; ATR Time Frame; ATR Value; Gain ($); Loss ($).
Customize text colors for each row and background transparency.
General Inputs:
ATR length and optional ATR timeframe override (e.g. use daily ATR on an intraday chart).
Target/Stop multipliers or percentages.
Dollar Amount for P/L calculations.
How to Use It for Trading
Plan Your Entry: Enter your intended Buy Price and position size (dollar amount).
Select Mode: Toggle between ATR or % mode depending on whether you prefer volatility‑based or fixed offsets.
Assess R:R and P/L: Instantly see your Target, Stop levels, and potential profit or loss in dollars.
Visual Reference: Lines and price labels update in real time as you tweak inputs—ideal for live trading, backtesting or trade journaling.
Ideal For
Traders who want both volatility‑based and percentage‑based exit options in one tool
Those who need on‑chart P/L estimates based on position size
Swing and intraday traders focused on objective, rule‑based trade management
Anyone who uses ATR for adaptive stops/targets or fixed percentages for simpler exits Indicator

Indicator

Trend Targets [AlgoAlpha]OVERVIEW
This script combines a smoothed trend-following model with dynamic price rejection logic and ATR-based target projection to give traders a complete visual framework for trading trend continuations. It overlays on price and automatically detects potential trend shifts, confirms rejections near dynamic support/resistance, and displays calculated stop-loss and take-profit levels to support structured risk-reward management. Unlike traditional indicators that only show trend direction or signal entries, this tool brings together a unique mix of signal validation, volatility-aware positioning, and layered profit-taking to guide decision-making with more context.
CONCEPTS
The core trend logic is built on a custom Supertrend that uses an ATR-based band structure with long smoothing chains—first through a WMA, then an EMA—allowing the trend line to respond to major shifts while ignoring noise. A key addition is the use of rejection logic: the script looks for consolidation candles that "hug" the smoothed trend line and counts how many consecutive bars reject from it. This behavior often precedes significant moves. A user-defined threshold filters out weak tests and highlights only meaningful rejections.
FEATURES
Trend Detection : Automatically identifies trend direction using a smoothed Supertrend (WMA + EMA), with shape markers on trend shifts and color-coded bars for clarity.
Rejection Signals : Detects price rejections at the trend line after a user-defined number of consolidation bars; plots ▲/▼ icons to highlight strong continuation setups.
Target Projection : On trend confirmation, plots entry, stop-loss (ATR-based), and three dynamic take-profit levels based on customizable multiples.
Dynamic Updates : All levels (entry, SL, TP1–TP3) auto-adjust based on volatility and are labeled in real time on the chart.
Customization : Users can tweak trend parameters, rejection confirmation count, SL/TP ratios, smoothing lengths, and appearance settings.
Alerts : Built-in alerts for trend changes, rejection events, and when TP1, TP2, or TP3 are reached.
Chart Overlay : Plots directly on price chart with minimal clutter and clearly labeled levels for easy trading.
USAGE
Start by tuning the Supertrend factor and ATR period to fit your asset and timeframe—higher values will catch bigger swings, lower values catch faster moves. The confirmation count should match how tightly you want to filter rejection behavior—higher values make signals rarer but stronger. When the trend shifts, the indicator colors the bars and line accordingly, and if enabled, plots the full entry-TP-SL structure. Rejection markers appear only after enough qualifying bars confirm price pressure at the trend line. This is especially useful for continuation plays where price retests the trend but fails to break it. All calculations are based on volatility (ATR), so targets naturally adjust with market conditions. Add alerts to get notified of important signals even when away from the chart.
Indicator

Wolfe Wave Detector [LuxAlgo]The Wolfe Wave Detector displays occurrences of Wolfe Waves, alongside a target line. A multiple swing detection approach is used to maximize the number of detected waves.
The indicator includes a dashboard with the number of detected waves, as well as the number of reached targets.
🔶 USAGE
The Wolfe Wave pattern is a chart pattern composed of five segments, with the initial segment extremities (points XABCD) forming a channel containing price variations.
After the price reaches point D , we can expect a reversal toward a target line (point E ). The target line is obtained by connecting and extending point X -> C .
The script draws the XABCD pattern and a projection of where E might potentially be located.
The projection is derived from the intersection between the target line and a line starting from D , parallel to B-C . From this line, margins are added, left and right, creating a wedge-shaped figure in most cases.
When the price passes the target line, this is highlighted by a dot. The dot and pattern are green by default when the target is above D and red when the target is below D . Colors can be edited in the settings. The dashed target line is colored in the opposite color.
As seen in the above example, the price trend can reverse after reaching the target line.
🔹 Symmetry
Ideally, the Wolfe Wave must have a degree of symmetry; every upward line should have a similar angle to the other upward lines, and the same should be true for the downward lines.
Also, the lines forming the channel should be as parallel as possible.
Users have the option to adjust the tolerance:
Margin controls the wave symmetry of the pattern
Angle controls the channel symmetry of the pattern
It's important to note that in both cases, a lower number will lead to more symmetrical patterns, but they may appear less frequently.
It is also important to note that increasing the Margin can delay validating the pattern. In the meantime, the price could surpass the channel in the opposite direction, invalidating and deleting the otherwise valid pattern.
🔹 Multiple Swings
Users can set a Minimum Swing length (for example 2) and a Maximum Swing length (for example 100) which defines the range of the swing point detection length, higher values for these settings will detect longer-term Wolfe patterns, while a larger range will allow for the detection of a larger number of patterns.
By using multiple swings, it is possible to find smaller next to larger patterns at the same time.
The dashboard shows the number of patterns found and targets reached. When, for example, bullish patterns are disabled in the settings, the dashboard only shows the results of bearish patterns.
🔹 Extend Target Line
The publication includes a setting that allows the Target Line to be extended up to 50 bars further. As seen in the above example, the Target Line can still be reached even after the pattern has been finalized. Once the Target Line is reached, it won't be updated further.
Here is another example of a Target Line being reached later on.
The Target Line acted as a support level, after which where the price changed direction.
🔹 Show Progression
An option is included to show the progression before the pattern is completed. Users can make use of the XABC pattern or visualize where point D should be positioned.
The focus lies on the bar range (between the left and right borders of the grey rectangle). The pattern is considered invalid and deleted when point D is beyond these limits. The height of the rectangle is optional. Ideally, the price should be located between the top and bottom of the rectangle, but it is not mandatory.
Show Progression has three options including:
Full: Show all lines of XABC plus line C-D and rectangle for the position of point D
Partial: Show line C-D and rectangle for the position of point D
None: Only show valid completed patterns
The 'Partial' option in the 'Show Progression' feature is designed to help users locate the desired position of point D without the visual clutter caused by the XABC lines. This can be useful for those who prefer a cleaner visual representation of the evolving pattern.
🔶 SETTINGS
🔹 Swing Length
Minimum: Minimum length used for the swing detection.
Maximum Swing Length: Maximum length used for the swing detection.
🔹 Tolerance
Margin: Influences the symmetry of the pattern; with a higher number allowing for less symmetry.
Angle: Influences the symmetry of the channel; with a higher number allowing for less symmetry.
🔹 Style
Toggle: Bullish/Bearish + colors
Extend Target Line: Extend a maximum of 50 bars or until Target Line is reached
Show Progression: Show pattern progression
Dot Size: The size of the dot when the Target Line is reached
🔹 Dashboard
Show Dashboard: Toggle dashboard which shows the number of found patterns and targets reached.
Location: Location of the dashboard on the chart.
Text Size: Text size.
🔹 Calculation
Calculated Bars: Allows the usage of fewer bars for performance/speed improvement
Indicator

Indicator

Blockunity Level Presets (BLP)A simple tool for setting performance targets.
Level Presets (BLP) is a simple tool for setting upside and downside levels relative to the current price of any asset. In this way, you can track which price the asset needs to move towards in order to achieve a defined performance.
How to Use
This indicator is very easy to use, you can set up to 5 upward and downward targets in the parameters.
Elements
The main elements of this tool are upward (default green) and downward (default red) levels.
Settings
Several parameters can be defined in the indicator configuration.
In addition to configuring which performance value to set the level at, you can choose not to display it if you don't need it. For example, here we display only two levels:
You can also choose not to display the labels:
Also concerning labels, you can choose not to display them in currency format, but in numerical format only (for example, if you're viewing a non-USD pair, such as ETHBTC):
Finally, you can modify design elements such as colors, level widths and text size:
How it Works
Here's how upside (_u) and downside (_d) levels are calculated:
source = close
level_1_u = source + (source * (level_1 / 100))
level_1_d = math.max(source - (source * (level_1 / 100)), 0)
Indicator

Targets For Many Indicators [LuxAlgo]The Targets For Many Indicators is a useful utility tool able to display targets for many built-in indicators as well as external indicators. Targets can be set for specific user-set conditions between two series of values, with the script being able to display targets for two different user-set conditions.
Alerts are included for the occurrence of a new target as well as for reached targets.
🔶 USAGE
Targets can help users determine the price limit where the price might start deviating from an indication given by one or multiple indicators. In the context of trading, targets can help secure profits/reduce losses of a trade, as such this tool can be useful to evaluate/determine user take profits/stop losses.
Due to these essentially being horizontal levels, they can also serve as potential support/resistances, with breakouts potentially confirming new trends.
In the above example, we set targets 3 ATR's away from the closing price when the price crosses over the script built-in SuperTrend indicator using ATR period 10 and factor 3. Using "Long Position Target" allows setting a target above the price, disabling this setting will place targets below the price.
Users might be interested in obtaining new targets once one is reached, this can be done by enabling "New Target When Reached" in the target logic setting section, resulting in more frequent targets.
Lastly, users can restrict new target creation until current ones are reached. This can result in fewer and longer-term targets, with a higher reach rate.
🔹 Dashboard
A dashboard is displayed on the top right of the chart, displaying the amount, reach rate of targets 1/2, and total amount.
This dashboard can be useful to evaluate the selected target distances relative to the selected conditions, with a higher reach rate suggesting the distance of the targets from the price allows them to be reached.
🔶 DETAILS
🔹 Indicators
Besides 'External' sources, each source can be set at 1 of the following Build-In Indicators :
ACCDIST : Accumulation/distribution index
ATR : Average True Range
BB (Middle, Upper or Lower): Bollinger Bands
CCI : Commodity Channel Index
CMO : Chande Momentum Oscillator
COG : Center Of Gravity
DC (High, Mid or Low): Donchian Channels
DEMA : Double Exponential Moving Average
EMA : Exponentially weighted Moving Average
HMA : Hull Moving Average
III : Intraday Intensity Index
KC (Middle, Upper or Lower): Keltner Channels
LINREG : Linear regression curve
MACD (macd, signal or histogram): Moving Average Convergence/Divergence
MEDIAN : median of the series
MFI : Money Flow Index
MODE : the mode of the series
MOM : Momentum
NVI : Negative Volume Index
OBV : On Balance Volume
PVI : Positive Volume Index
PVT : Price-Volume Trend
RMA : Relative Moving Average
ROC : Rate Of Change
RSI : Relative Strength Index
SMA : Simple Moving Average
STOCH : Stochastic
Supertrend
TEMA : Triple EMA or Triple Exponential Moving Average
VWAP : Volume Weighted Average Price
VWMA : Volume-Weighted Moving Average
WAD : Williams Accumulation/Distribution
WMA : Weighted Moving Average
WVAD : Williams Variable Accumulation/Distribution
%R : Williams %R
Each indicator is provided with a link to the Reference Manual or to the Build-In Indicators page.
The latter contains more information about each indicator.
Note that when "Show Source Values" is enabled, only values that can be logically found around the price will be shown. For example, Supertrend , SMA , EMA , BB , ... will be made visible. Values like RSI , OBV , %R , ... will not be visible since they will deviate too much from the price.
🔹 Interaction with settings
This publication contains input fields, where you can enter the necessary inputs per indicator.
Some indicators need only 1 value, others 2 or 3.
When several input values are needed, you need to separate them with a comma.
You can use 0 to 4 spaces between without a problem. Even an extra comma doesn't give issues.
The red colored help text will guide you further along (Only when Target is enabled)
Some examples that work without issues:
Some examples that work with issues:
As mentioned, the errors won't be visible when the concerning target is disabled
🔶 SETTINGS
Show Target Labels: Display target labels on the chart.
Candle Coloring: Apply candle coloring based on the most recent active target.
Target 1 and Target 2 use the same settings below:
Enable Target: Display the targets on the chart.
Long Position Target: Display targets above the price a user selected condition is true. If disabled will display the targets below the price.
New Target Condition: Conditional operator used to compare "Source A" and "Source B", options include CrossOver, CrossUnder, Cross, and Equal.
🔹 Sources
Source A: Source A input series, can be an indicator or external source.
External: External source if 'External" is selected in "Source A".
Settings: Settings of the selected indicator in "Source A", entered settings of indicators requiring multiple ones must be comma separated, for example, "10, 3".
Source B: Source B input series, can be an indicator or external source.
External: External source if 'External" is selected in "Source B".
Settings: Settings of the selected indicator in "Source B", entered settings of indicators requiring multiple ones must be comma separated, for example, "10, 3".
Source B Value: User-defined numerical value if "value" is selected in "Source B".
Show Source Values: Display "Source A" and "Source B" on the chart.
🔹 Logic
Wait Until Reached: When enabled will not create a new target until an existing one is reached.
New Target When Reached: Will create a new target when an existing one is reached.
Evaluate Wicks: Will use high/low prices to determine if a target is reached. Unselecting this setting will use the closing price.
Target Distance From Price: Controls the distance of a target from the price. Can be determined in currencies/points, percentages, ATR multiples, ticks, or using multiple of external values.
External Distance Value: External distance value when "External Value" is selected in "Target Distance From Price". Indicator

Targets For Overlay Indicators [LuxAlgo]The Targets For Overlay Indicators is a useful utility tool able to display targets during crossings made between the price and external indicators on the user chart. Users can display a series of two targets, one for crossover events and another one for crossunder event.
Alerts are included for the occurrence of a new target as well as for reached targets.
🔶 USAGE
In order for targets to be displayed users need to select an appropriate input source from the "Source" drop-down input setting. In the example above we apply the indicator to a volatility stop.
This can also easily be done by adding the "Targets For Overlay Indicators" script on the VStop indicator directly.
Targets can help users determine the price limit where the price might start deviating from an indication given by one or multiple indicators. In the context of trading, targets can help secure profits/reduce losses of a trade, as such this tool can be useful to evaluate/determine user take profits/stop losses.
Due to these essentially being horizontal levels, they can also serve as potential support/resistances, with breakouts potentially confirming new trends.
Users might be interested in obtaining new targets once one is reached, this can be done by enabling "New Target When Reached" in the target logic setting section, resulting in more frequent targets.
Lastly, users can restrict new target creation until current ones are reached. This can result in fewer and longer-term targets, with a higher reach rate.
🔹 Examples
The indicator can be applied to many overlay indicators that naturally produce crosses with the price, such as moving average, trailing stops, bands...etc.
Users can use trailing stops such as the SuperTrend or VStop to more easily create clean targets. Do note that certain SuperTrend scripts separate the upper and lower extremities of the SuperTrend into two different plot, which cannot be used with this tool, you may use the provided SuperTrend script below to have a compatible version with our tool:
//@version=5
indicator("SuperTrend", overlay = true)
factor = input.float(3, 'Factor', minval = 0)
atrLen = input.int(10, 'ATR Length', minval = 1)
= ta.supertrend(factor, atrLen)
plot(spt, 'SuperTrend', dir != dir ? na : dir < 0 ? #089981 : #f23645, 2)
plot(spt, 'Circles', dir > dir ? #f23645 : dir < dir ? #089981 : na, 3, plot.style_circles)
Using moving averages can produce more targets than other overlay indicators.
Users can apply the tool twice when using bands or any overlay indicator returning two outputs, using crossover targets for obtaining targets using the upper band as source and crossunder targets for targets using the lower band. We can also use the Trendlines with breaks indicator as example:
🔹 Dashboard
A dashboard is displayed on the top right of the chart, displaying the amount, reach rate of targets 1/2, and total amount.
This dashboard can be useful to evaluate the selected target distances relative to the selected conditions, with a higher reach rate suggesting the distance of the targets from the price allows them to be reached.
🔶 SETTINGS
Source: Indicator source used to create targets. Targets are created when the closing price crosses the specified source.
Show Target Labels: Display target labels on the chart.
Candle Coloring: Apply candle coloring based on the most recent active target.
🔹 Target
Crossover and Crossunder targets use the same settings below:
Show Target: Determines if the target is displayed or not.
Above Price Target: If selected, will create targets above the closing price.
Wait Until Reached: When enabled will not create a new target until an existing one is reached.
New Target When Reached: Will create a new target when an existing one is reached.
Evaluate Wicks: Will use high/low prices to determine if a target is reached. Unselecting this setting will use the closing price.
Target Distance From Price: Controls the distance of a target from the price. Can be determined in currencies/points, percentages, ATR multiples, or ticks.
Indicator

Risk Management GO8686: Stop Loss, Position Size & TargetFull Name: Risk Management GO8686: Stop Loss, Position Size & Target
What this indicator provides:
A dashboard to calculate Stop Loss, Position Size and Target, where users can customize Risk Management parameters in the setting.
Position Size: calculated from "initialCapital", "Leverage", "Max Loss", "feeMaker", "feeTaker".
Stop Loss Price: using pivots, default length is set to 3, with an extra ATR value controlled by "'Multiplier OF Extra ATR".
Target: calculated from entry price, risk reward, distance between entry and stop loss, fees
What the indicator does Not provides:
entries of positions: The Long/Short entries displayed are just MACD signal crossing zero, users can apply their own entry logic, by modifying ready2L / ready2S variables.
What the indicator does Not guarantee:
the integrity, timeliness, accuracy, and comprehensiveness of the data, calculation method, calculation results, etc.
Two types labels:
1. Automated labels: they are displayed when MACD signal crossing zero, use "Display History Labels" to toggle display or not.
2. Setup Manually label: located at the right side of the latest bar, to display results when users setup manually
The settings of the indicator:
"Toggle to Reload",
"InitialCapital", "Leverage", "Max Loss % per trade", "feeMaker", "feeTaker",
4 length inputs for Pivot, "Multiplier of Extra ATR for stop loss",
"Toggle To setup manually", "Toggle between Long / Short", "Entry Price, set manually", "Stop Loss Price, set manually", "Risk-Reward Ratio"
"Display History Labels"
---------- Disclaimer ----------
Before using or requesting access to the indicator, customers/users acknowledge that they have read and accepted that the indicator, any associated contents on all social medias and any communication with the indicator author, including but not limited to: product and service details, signals, alerts, data, calculation methods, calculation results, user manual, tutorials, ideas, videos, chats, messages, emails, blogs, tweets, etc. are provided solely for educational purpose and Not as financial advice. Customers/users understand and agree to use the aforementioned indicator and information at their own risk.
---------- Updates ----------
The latest updates override the previous content.
To activate a update, if it does not load as expected: close the indicator, save the chart, clear browser caches, restart the browser, reload the chart and apply the indicator to the chart. Indicator

Range BreakerStrategy Description: Range Breaker
The Range Breaker strategy is a breakout trading strategy that aims to capture profits when the price of a financial instrument moves out of a defined range. The strategy identifies swing highs and swing lows over a specified lookback period and enters long or short positions when the price breaks above the swing high or below the swing low, respectively. It also employs stop targets based on a percentage to manage risk and protect profits.
Beginner's Guide:
Understand the concepts:
a. Swing High: A swing high is a local peak in price where the price is higher than the surrounding prices.
b. Swing Low: A swing low is a local trough in price where the price is lower than the surrounding prices.
c. Lookback Period: The number of bars or periods the strategy analyzes to determine swing highs and swing lows.
d. Stop Target: A predetermined price level at which the strategy will exit the position to manage risk and protect profits.
Configure the strategy:
a. Set the initial capital, order size, commission, and pyramiding as needed for your specific trading account.
b. Choose the desired lookback period to identify the swing highs and lows.
c. Set the stop target multiplier and stop target percentage as desired to manage risk and protect profits.
Backtest the strategy:
a. Set the backtest start date to analyze the strategy's historical performance.
b. Observe the backtesting results to evaluate the strategy's effectiveness and adjust the parameters if necessary.
Implement the strategy:
a. Apply the strategy to your preferred financial instrument on the PulseWire platform.
b. Monitor the strategy's performance and adjust the parameters as needed to optimize its effectiveness.
Risk management:
a. Always use a stop target to protect your trading capital and manage risk.
b. Don't risk more than a small percentage of your trading capital on a single trade.
c. Be prepared to adjust the strategy or stop trading it if the market conditions change significantly.
Adjusting the Lookback Period and Timeframes for Optimal Strategy Performance
The Range Breaker strategy uses a lookback period to identify swing highs and lows, which serve as the basis for determining entry and exit points for long and short positions. By adjusting the lookback period and analyzing different timeframes, you can potentially find the best strategy configuration for each specific asset.
Adjusting the lookback period:
The lookback period is a critical parameter that affects the sensitivity of the strategy to price movements. A shorter lookback period will make the strategy more sensitive to smaller price fluctuations, resulting in more frequent trading signals. On the other hand, a longer lookback period will make the strategy less sensitive, generating fewer signals but potentially capturing larger price movements.
To optimize the lookback period for a specific asset, you can test different lookback values and compare their performance in terms of risk-adjusted returns, win rate, and other relevant metrics. Keep in mind that using an overly short lookback period may lead to overtrading and increased transaction costs, while an overly long lookback period may cause the strategy to miss profitable trading opportunities.
Analyzing different timeframes:
Timeframes refer to the duration of each bar or candlestick on the chart. Shorter timeframes (e.g., 5-minute, 15-minute, or 30-minute) focus on intraday price movements, while longer timeframes (e.g., daily, weekly, or monthly) capture longer-term trends. The choice of timeframe affects the number of trading signals generated by the strategy and the length of time each position is held.
To find the best strategy for each asset, you can test the Range Breaker strategy on different timeframes and analyze its performance. Keep in mind that shorter timeframes may require more active monitoring and management due to the increased frequency of trading signals. Longer timeframes, on the other hand, may require more patience as positions are held for extended periods.
Finding the best strategy for each asset:
Every asset has unique price characteristics that may affect the performance of a trading strategy. To find the best strategy for each asset, you should:
a. Test various lookback periods and timeframes, observing the strategy's performance in terms of profitability, risk-adjusted returns, and win rate.
b. Consider the asset's historical price behavior, such as its volatility, liquidity, and trend-following or mean-reverting tendencies.
c. Evaluate the strategy's performance during different market conditions, such as bullish, bearish, or sideways markets, to ensure its robustness.
d. Keep in mind that each asset may require a unique set of strategy parameters for optimal performance, and there may be no one-size-fits-all solution.
By experimenting with different lookback periods and timeframes, you can fine-tune the Range Breaker strategy for each specific asset, potentially improving its overall performance and adaptability to changing market conditions. Always practice proper risk management and be prepared to make adjustments as needed.
Remember that trading strategies carry inherent risk, and past performance is not indicative of future results. Always practice proper risk management and consider your own risk tolerance before trading with real money. Strategy

Scaled Order Sizing and Take Profit Target ArraysWOAH Order Scaling!
This Provides a user with methods to create a list of profit targets and order sizes which grow or shrink. For size, the will add up to specific sum. for Targets they will include the first and last, and can lean towards either, to scale the order grid.
And thanks to @Hoanghetti for the markdown, i've included a basic usage example within the hover , o you don't need to search for the usage example, simply import, and when writing, the code hint contains a full example.
scaled_sizes(total_size, count, weight, min_size, as_percent)
create an array of sizes which grow or shrink from first to last
which add up to 1.0 if set the as_percent flag , or a total value / sum.
Parameters:
total_size : (float) total size to divide ito split
count : (int ) desired number of splits to create
weight : (float) a weight to apply to grow or shrink the split either towards the last being most, or the first being most, or 1.0 being each is equally sized as 1/n count
min_size : (float) a minimum size for the smallest value (in value of ttotal_size units)
as_percent : (float) a minimum size for the smallest value (in value of total_size units)
Returns: Array of Sizes for each split
scaled_targets(count, weight, minimum, maximum)
create a list of take profitt targets from the smallest to larget distance
Parameters:
count : (int ) number of targets
weight : (float) weight to apply to growing or shrinking
minimum : (float) first value of the output
maximum : (float) last value of the output
Returns: Array of percentage targets Library
