Impulse Box Breakout Engine - Origin Range Buy Sell SignalsIMPULSE BOX BREAKOUT ENGINE — a complete breakout trading system in one indicator: self-adjusting impulse boxes with entry arrow, stop, two fixed targets, a pink trailing-stop dot line and webhook automation. Rebuilt 1:1 from a professional German "Impulsbox" breakout engine (72-minute source webinar, analyzed frame by frame) and redesigned as a modern cockpit indicator.
█ WHAT IT DOES
The engine meters the market N bars back: the range the market traded in PLUS the length of every single bar inside it (compression check). When a STRONG impulse bar closes outside that range, the IMPULSE BOX appears over the consolidation:
• CYAN BOX = long breakout — big entry arrow inside the box
• GOLD BOX = short breakout — mirrored to the downside
• Initial stop = the far side of the box (bottom for longs, top for shorts)
• TARGET 1 + TARGET 2 (violet marks) are projected from the box height the moment the box appears — FIXED, never repainted, never moved afterwards
• PINK DOTS = the trailing stop. It starts at the box edge and follows price with ~30% of the move as breathing room. It only ratchets in your favor — never back
• At Target 1 the stop jumps to break-even or better. After Target 2 the system follows the source rule: "never leave the market voluntarily — let the stop take you out"
█ SELF-OPTIMIZING ENGINE
Markets are sideways ~80% of the time — rigid breakout parameters fail there. This engine adapts automatically:
• TREND regime (ADX based): short lookback, wider targets (+35% / +100% of box height)
• RANGE regime: longer lookback, stricter impulse filter, closer targets (+25% / +75%)
• AUTO-RECALIBRATION: after a false breakout the impulse threshold is raised temporarily — fewer but cleaner boxes. A winning box resets it
• The cockpit shows the current regime, calibration and effective parameters at all times
█ HONEST LIVE STATISTICS
The cockpit counts every box on your chart and shows the real Target-1 and Target-2 hit rates — no marketing numbers, live counted on your symbol and timeframe. On XAUUSD 15m the default engine printed 500+ boxes with a T1 hit rate above 90% at the time of publishing (past performance never guarantees future results).
█ DIRECTION BIAS FILTER
The #1 rule of the source system: trade boxes only in the direction of the higher-level move. The indicator automates this via EMA-200 + Supertrend bias. Choose: Off / Mark counter-bias boxes (dimmed + warning) / Filter them out completely. Supertrend companion arrows are included as extra confluence.
█ EVERY SIGNAL EXPLAINS ITSELF
Hover any BUY/SELL pill: how many bars of consolidation, how strong the impulse bar was (x average bar), which range edge broke, which regime the engine was in, whether the box agrees with the bias — plus entry, stop and both targets. No black box.
█ WEBHOOK AUTOMATION (BOTS / BRIDGES)
Create ONE alert with "Any alert() function call" and your webhook URL. The indicator fires ready-to-use JSON on BUY, SELL, T1_HIT, T2_HIT, TRAIL_EXIT and SL_HIT — including entry, stop, both targets, box levels, regime and live hit rates. Works with any webhook bridge, bot or auto-trader.
█ HOW TO USE
1) Add to chart — works on ALL symbols and ALL timeframes (crypto, gold, forex, indices, stocks)
2) Use standard candles or OHLC bars (Heikin-Ashi smoothing swallows breakouts — a key finding of the source webinar)
3) Wait for a box + arrow, entry at the breakout close, stop at the far box edge
4) Take partial profit at Target 1, let the rest run with the pink trailing dots
5) Automate via webhook JSON if you want
█ SETTINGS
Everything is configurable: manual mode with fixed lookback/impulse strength, target distances, trailing gap, exit-at-T2 mode, bias filter mode, Supertrend, chart theme, cockpit position and all alert toggles.
Educational tool only — not financial advice. Trading involves substantial risk. Always test on a demo account first and never risk money you cannot afford to lose.
WHY THESE PARTS BELONG TOGETHER
The impulse detection and the box are one mechanism, not two features. The impulse identifies the
candle sequence that moved the market; the box freezes the range that impulse came out of, because
that range is the level the market has to defend for the move to continue. Detecting impulses
without marking their origin gives you a signal with no invalidation, and drawing boxes without an
impulse gives you consolidation zones with no direction.
Indicator

Darvas Box Breakout Quality [AGPro Series]Darvas Box Breakout Quality
🔹 OVERVIEW
Darvas Box Breakout Quality is built for one of the most recognizable and widely searched chart-pattern structures in technical analysis: the Darvas Box.
The script focuses on the full Darvas lifecycle:
Box formation → compression quality → breakout direction → volume support → failed-break behavior.
Instead of treating every horizontal range as support and resistance, this script waits for a Darvas-style structure to form, validates the box by age and volatility-adjusted height, then evaluates how price resolves from that box. The result is a clean chart-pattern workflow designed for traders who want to study rectangular compression and breakout quality without turning the chart into a crowded zone map.
The main visual element is the active Darvas box itself. By default, resolved boxes are removed after breakout so the chart stays focused on the current live structure instead of filling with old rectangles.
🔹 WHAT MAKES IT DIFFERENT
Most box or breakout tools stop at drawing a rectangle or marking the first break beyond a level. Darvas Box Breakout Quality adds structure, scoring, and failure awareness.
Core differentiators:
• Darvas-first structure logic
The rectangle is not a generic support/resistance zone. It comes from a Darvas box formation process built around a fresh seed high, containment, age, and volatility-adjusted box height.
• Compression quality
The script measures whether the box has enough maturity and controlled range behavior before treating it as a meaningful active structure.
• Breakout quality score
Every qualified breakout is evaluated with a 0-100 model that includes compression quality, relative volume, breakout distance, candle body participation, and directional close location.
• Volume confirmation
Breakout labels can require volume support, helping separate stronger participation events from weaker boundary pokes.
• Failed-break tracking
After breakout, the script watches whether price returns back inside the former box within the selected failure window. If it does, the event is marked as a failed break.
• Premium visual restraint
The default chart view uses one active box, compact labels, controlled label spacing, and a compact AGPro panel. The goal is to make the chart informative without making it noisy.
🧭 WHY THIS DOES NOT OVERLAP WITH OTHER AGPRO TOOLS
This script is intentionally separated from the existing AGPro breakout and chart-pattern family.
It is not Inside Bar Breakout Quality, because it does not require a mother bar or inside-bar compression sequence.
It is not Donchian Breakout Quality, because it is not based on rolling channel highs and lows.
It is not Opening Range Breakout logic, because it is not tied to a session-defined range.
It is not Triangle Breakout Quality, because it does not use converging pivot boundaries, apex pressure, or diagonal structure.
It is not Breakout Volume Quality, because volume is only one part of the confirmation model, not the entire concept.
It is not a supply/demand, order-block, or generic support/resistance zone script. The rectangle exists only when the Darvas box formation process supports it.
That distinction matters visually and analytically. On the chart, this script tells a Darvas story: rectangular compression, active box behavior, quality of release, and failed-break review.
⚙️ METHODOLOGY
1. Darvas seed detection
The script looks for a fresh high over the selected lookback period. This high becomes the initial reference for a potential Darvas box.
2. Box formation
After the seed appears, price must spend enough time contained beneath the upper boundary while the lower boundary develops. The box remains in formation until it meets the selected age and height requirements.
3. Volatility normalization
The box height is measured relative to ATR. This helps filter boxes that are too flat to matter or too wide to represent clean compression.
4. Active box state
When the box qualifies, the script displays the active Darvas box and optional midpoint. The box projects forward so the active breakout boundary remains visible while price approaches it.
5. Breakout confirmation
A bullish breakout requires price to resolve above the Darvas top. A bearish breakout requires price to resolve below the Darvas bottom. Users can require close-based confirmation for stricter filtering.
6. Quality score
The breakout score combines:
• Compression quality
• Relative volume support
• ATR-normalized breakout distance
• Candle body participation
• Directional close location
7. Failed-break monitoring
After breakout, the script watches a defined number of bars. If price returns back inside the former Darvas boundary, the failed-break marker is printed.
📊 PANEL
The AGPro panel summarizes the current Darvas environment:
• Box Age
• Compression
• Breakout Side
• Volume Support
• Latest Quality / State
The first panel row follows the AGPro publication standard: one merged blue header row containing only the panel title. Panel location, panel theme, and panel font size are adjustable from settings.
🎛️ KEY INPUTS
Darvas Box Detection
• New High Lookback
• Minimum Box Age
• Maximum Box Age
• ATR Length
• Minimum Box Height ATR
• Maximum Box Height ATR
• Require Close Beyond Box
Breakout Quality
• Volume MA Length
• Volume Support Threshold
• Require Volume Support
• Target Break Distance ATR
• Minimum Breakout Score
• Failed Break Window
Visual Controls
• Show Active Darvas Box
• Show Box Midline
• Show Breakout Labels
• Show Failed Break Markers
• Keep Resolved Box
• Box Projection Bars
• Label Cooldown Bars
• Maximum Visible Labels
• Label Offset ATR
• Label Stack Offset ATR
• Label Font Size
Panel
• Panel Location
• Panel Theme
• Panel Font Size
🔍 HOW TO READ IT
When a Darvas box becomes active, the chart displays the live rectangular structure. The panel shows how old the box is, how compressed it is, and whether the latest environment has breakout direction or volume support.
When price resolves outside the box with enough quality, the chart prints a compact breakout label such as UP 79 or DN 75. The number represents the breakout quality score.
When price fails to hold outside the box and returns back inside during the selected failure window, the script prints a compact failed-break marker such as FAIL UP or FAIL DN.
The best readings come when the box is visually clear, compression is meaningful, and the breakout candle has both directional close quality and volume support.
🧩 BEST USE CASES
• Classic Darvas box formations
• Rectangular range compression
• Box breakout quality review
• Volume-backed breakout confirmation
• Failed-break review after a box release
• Clean chart-pattern study
• Multi-timeframe Darvas structure observation
• Screenshot-friendly public chart analysis
🧠 VISUAL DESIGN PHILOSOPHY
Darvas Box Breakout Quality is designed to look premium through restraint.
The script avoids filling the chart with old boxes by default. It keeps the active Darvas box as the main visual layer, uses short event labels, adds cooldown and stack spacing to reduce overlap, and keeps the panel compact.
This makes the indicator easier to publish, easier to read, and easier to use across different symbols and timeframes.
🔔 ALERTS
The script includes alert conditions for:
• High-quality bullish Darvas breakout
• High-quality bearish Darvas breakout
• Failed bullish Darvas breakout
• Failed bearish Darvas breakout
These alerts follow the same structure-aware logic used by the chart labels.
🔹 LIMITATIONS AND TRANSPARENCY
Darvas box detection is structure-based and depends on the selected lookback, age, and ATR filters. Changing those settings can make the script more selective or more active.
Volume support depends on the quality of the symbol's volume feed. On instruments where volume is less informative, users may prefer to adjust the volume threshold or disable the volume requirement.
The score is a structured description of breakout quality according to the script's internal model. It is designed to help compare Darvas box releases by quality, not to replace the user's broader market context.
✅ IDEAL USER
This script is designed for traders who want a focused Darvas box tool with cleaner structure detection, breakout quality scoring, volume confirmation, failed-break awareness, and a premium chart layout.
It is best suited for users who want the Darvas box itself to remain the main story on the chart. Indicator

Fixed Range Control Box [AGPro Series]Fixed Range Control Box
🔹 Overview
Fixed Range Control Box isolates a single high-conviction price range on your chart and classifies who is in control inside it. The tool draws one clean hero box around the most recent structural range, places a volume-weighted Control Line inside it, and tracks state transitions in real time: Inside, Upper, Lower, or Failed. When price structurally breaks the box, the range freezes, locking the reference so you can study the aftermath without visual drift.
Four range-definition modes are available — Pivot, Lookback, Compression, and Manual-Date — so the tool adapts to discretionary range traders, systematic rotation traders, and anyone who wants a fixed reference zone for backtesting or journaling.
🔸 Unique Edge
Most range tools on PulseWire draw many boxes and leave the user to guess which one matters. Fixed Range Control Box is built around a different philosophy: one range, one story, one decision. The hero box is the visual focus; historical ranges fade into the background; the Control Line tells you which side of the range is winning the statistical argument.
Three design choices separate this from standard range-box scripts:
- Volume-weighted Control Line. Rather than dropping a midpoint line, the Control Line is computed from the volume-weighted typical price across the life of the range, with an edge-fallback to midpoint if the line drifts too close to either boundary. This produces a structurally meaningful reference instead of a geometric one.
- Retrospective fill on range rebuild. When a new range is committed, the script walks back through the range window and retroactively computes touch count, hold quality, and the Control Line. You see a fully-formed box with accurate statistics the moment it appears, not an empty box that slowly populates.
- Freeze-on-failure. When price closes beyond the range and the state transitions to Failed, the box locks at the break bar. No more drifting endpoints on broken structures — the reference stays where the story ended.
🔷 Methodology
The script cycles through four stages on every bar:
1. Range detection. Depending on the selected mode, the script looks for a qualifying range: confirmed swing pivots (Pivot), rolling highest/lowest (Lookback), short-ATR over long-ATR compression (Compression), or a user-defined date window (Manual). Gating rules — minimum lifespan, minimum width percentage, and a failed-state cooldown — prevent rapid re-triggers on noisy conditions.
2. Commit and retrospective fill. Once a range qualifies, the script snapshots the old range into history, installs the new one, and walks back through the window to compute the Control Line, touch count, and hold quality in a single pass. No warm-up period.
3. State machine. Each confirmed bar feeds the state machine. Strict logic requires bar closes on one side of the Control Line for the configured number of bars before switching to Upper or Lower; a close beyond either range boundary transitions to Failed.
4. Rendering. On the last bar, the hero box, Control Line, origin marker, and state badge are rebuilt from scratch. Historical ranges persist as muted boxes up to a configurable cap.
🔶 Signals & Alerts
Three alert conditions cover the full range lifecycle:
- New Control Box. Fires once per bar close when a new range is committed.
- Line Reclaimed (Bull or Bear). Fires when state transitions into Upper or Lower control, confirming directional bias inside the range.
- Control Failed. Fires once when price closes beyond the range and the box is frozen.
All alerts use alert() calls with once-per-bar-close frequency.
🔹 Key Inputs
- Range Mode — Auto-Pivot, Auto-Lookback, Auto-Compression, or Manual-Date.
- Pivot Length / Lookback Bars / Compression Window — window controls for each detection mode.
- Min Range Lifespan / Min Range Width % — structural filters to suppress micro-ranges.
- Failed Cooldown — bars to wait after a broken range before searching for a new one.
- Strict Control Logic + Reclaim Confirmation — governs how the Control Line state machine transitions.
- Visual controls — fade old boxes, max boxes kept, show state badge, show range origin, future projection bars, panel and label font sizes.
🔸 How to Use
1. Start on your primary timeframe and select the Range Mode that matches your style: Pivot for discretionary swing structures, Lookback for mechanical windows, Compression for auto-locking onto consolidations, Manual-Date for backtesting a specific episode.
2. Tune Min Range Width % and Min Range Lifespan so only structurally meaningful ranges appear.
3. Read the panel top-down: Mode confirms what you are tracking, Control tells you which side of the Control Line is winning, Range Age and Touches describe maturity and confluence, Hold Quality summarizes how cleanly price has respected the range, and State shows the live classification.
4. Use alerts to monitor the range lifecycle without staring at the chart.
🔻 Limitations & Transparency
- This is an analytical tool, not a strategy. It does not generate buy or sell recommendations and does not compute entries, stops, or targets.
- Past range behavior does not forecast future range behavior. Structural breaks can occur at any time.
- In very thin or illiquid markets, the volume-weighted Control Line can drift toward a boundary; the edge-fallback defaults to midpoint to protect against degenerate cases.
- Auto-Compression mode requires sufficient ATR history; expect a warm-up period on very recent symbols.
- The script is overlay-only and does not access other timeframes.
🔶 Risk Disclosure
Nothing in this script constitutes financial advice. Trading involves substantial risk of loss and is not suitable for every investor. Always do your own research and manage risk appropriately. Indicator

Indicator

Session Range Boxes by APOVERVIEW
This indicator is designed for traders who require clear, visual boundaries for different trading sessions. It tracks the highest high and lowest low of up to six custom-defined time windows, wrapping them in dynamic boxes that update in real-time.
FEATURES
6 Customizable Sessions: Fully adjustable time ranges and names (Asia, London, NY Open, etc.).
Real-Time Tracking: Session boxes expand dynamically as price creates new highs or lows during the session.
Visual Organization: Individual color and transparency controls for each session to keep your chart clean.
Auto-Delete Logic: Automatically removes older session boxes to prevent chart clutter (user-definable "Keep Last N Sessions").
Timezone Flexibility: Built-in timezone support (IANA/Olson format) to ensure sessions align perfectly with your chart regardless of your local time.
HOW TO USE
Define your Timezone: Set the global "Session Timezone" to your reference market (e.g., America/New_York)
Input Sessions: Enter the 24-hour time ranges for your desired trading windows (e.g., 0930-1100).
Customize your settings & colors
Enjoy :)
SETTINGS
Global : Toggle borders and labels globally, and set the auto-cleanup frequency.
Session-Specific: Individual toggles for time, background fill, border color, and naming.
NOTES
Of course I could add more functionality, but my main goal was to keep the indicator as small and simple as possible, while providing functionality which it was built for.
Since the functionality is limited, I will keep this indicator open-source so everybody can edit and customize it to his own liking.
Indicator

Indicator

Indicator

Indicator

Indicator

Indicator

Indicator

Malama's Pre-Market BoxThis script is a comprehensive Pre-Market range visualizer designed to replace older, single-candle analysis tools. It automatically highlights the full pre-market session (04:00–09:30 EST) and extends key support/resistance levels into the regular trading day.
Why this script was created (Evolution from previous versions): This is a complete architectural rewrite of the older "Malama's KAYCAP Pre-Market Box."
Old Logic: The previous version focused on isolating a single, specific 1-minute candle (e.g., exactly 4:00 AM) to determine levels.
New Logic: This version tracks the entire pre-market session range. It dynamically updates the True High and True Low as the pre-market develops, providing a much more accurate support/resistance zone for the open.
Visual Overhaul: Instead of static plots, this version uses Pine Script v6 box and line objects to draw a clean, shading-customizable range that automatically extends rightward until the trading session ends.
How it works:
Session Tracking: The script monitors the user-defined session (default 04:00-09:30).
Dynamic Box: As price moves during pre-market, a box is drawn covering the highest high and lowest low of that period.
Level Extension: At 09:30 (Market Open), the script locks the High and Low values. It then projects two horizontal lines (Resistance and Support) across the chart for the rest of the day.
Breakout Detection: If the price closes outside these levels during regular hours, the script can optionally trigger Alerts and plot "BREAK" labels on the chart.
Settings:
Time Settings: Customizable session string (default captures standard US Pre-Market).
Visuals: Fully adjustable box colors, border transparency, and line width.
Signals: Toggle breakout labels on/off.
Alerts Included:
Bullish Breakout: Triggers when price crosses and closes above the Pre-Market High.
Bearish Breakdown: Triggers when price crosses and closes below the Pre-Market Low. Indicator

Quantile-Based Adaptive Detection🙏🏻 Dedicated to John Tukey. He invented the boxplot, and I finalized it.
QBAD (Quantile-Based Adaptive Detection) is ‘the’ adaptive (also optionally weighted = ready for timeseries) boxplot with more senseful fences. Instead of hardcoded multipliers for outer fences, I base em on a set of quantile-based asymmetry metrics (you can view it as an ‘algorithmic’ counter part of central & standardized moments). So outer bands are Not hardcoded, not optimized, not cross-validated etc, simply calculated at O(nlogn).
You can use it literally everywhere in any context with any continuous data, in any task that requires statistical control, novelty || outlier detection, without worrying and doubting the sense in arbitrary chosen thresholds. Obviously, given the robust nature of quantiles, it would fit best the cases where data has problems.
The thresholds are:
Basis: the model of the data (median in our case);
Deviations: represent typical spread around basis, together form “value” in general sense;
Extensions: estimate data’s extremums via combination of quantile-based asymmetry metrics without relying on actual blunt min and max, together form “range” / ”frame”. Datapoints outside the frame/range are novelties or outliers;
Limits: based also on quantile asymmetry metrics, estimate the bounds within which values can ‘ever’ emerge given the current data generating process stays the same, together form “field”. Datapoints outside the field are very rare, happen when a significant change/structural break happens in current data-generating process, or when a corrupt datapoint emerges.
…
The first part of the post is for locals xd, the second is for the wanderers/wizards/creators/:
First part:
In terms of markets, mostly u gotta worry about dem instruments that represent crypto & FX assets: it’s either activity hence data sources there are decentralized, or data is fishy.
For a higher algocomplexity cost O(nlong), unlike MBAD that is 0(n), this thing (a control system in fact) works better with ishy data (contaminated with wrong values, incomplete, missing values etc). Read about the “ breakdown point of an estimator ” if you wanna understand it.
Even with good data, in cases when you have multiple instruments that represent the same asset, e.g. CL and BRN futures, and for some reason you wanna skip constructing a proper index of em (while you should), QBAD should be better put on each instrument individually.
Another reason to use this algo-based rather than math-based tool, might be in cases when data quality is all good, but the actual causal processes that generate the data are a bit inconsistent and/or possess ‘increased’ activity in a way. SO in high volatility periods, this tool should provide better.
In terms of built-ins you got 2 weightings: by sequence and by inferred volume delta. The former should be ‘On’ all the time when you work with timeseries, unless for a reason you want to consciously turn it off for a reason. The latter, you gotta keep it ‘On’ unless you apply the tool on another dataset that ain’t got that particular additional dimension.
Ain’t matter the way you gonna use it, moving windows, cumulative windows with or without anchors, that’s your freedom of will, but some stuff stays the same:
Basis and deviations are “value” levels. From process control perspective, if you pls, it makes sense to Not only fade or push based on these levels, but to also do nothing when things are ambiguous and/or don’t require your intervention
Extensions and limits are extreme levels. Here you either push or fade, doing nothing is not an option, these are decisive points in all the meanings
Another important thing, lately I started to see one kind of trend here on pulsewire as well and in general in near quant sources, of applying averages, percentiles etc ‘on’ other stationary metrics, so called “indicators”. And I mean not for diagnostic or development reasons, for decision making xd
This is not the evil crime ofc, but hillbilly af, cuz the metrics are stationary it means that you can model em, fit a distribution, like do smth sharper. Worst case you have Bayesian statistics armed with high density intervals and equal tail intervals, and even some others. All this stuff is not hard to do, if u aint’t doing it, it’s on you.
So what I’m saying is it makes sense to apply QBAD on returns ‘of your strategy’, on volume delta, but Not on other metrics that already do calculations over their own moving windows.
...
Second part:
Looks like some finna start to have lil suspicions, that ‘maybe’ after all math entities in reality are more like blueprints, while actual representations are physical/mechanical/algorithmic. Std & centralized moments is a math entity that represents location, scale & asymmetry info, and we can use it no problem, when things are legit and consistent especially. Real world stuff tho sometimes deviates from that ideal, so we need smth more handy and real. Add to the mix the algo counter part of means: quantiles.
Unlike the legacy quantile-based asymmetry metrics from the previous century (check quantile skewness & kurtosis), I don’t use arbitrary sets of quantiles, instead we get a binary pattern that is totally geometric & natural (check the code if interested, I made it very damn explicit). In spirit with math based central & standardized moments, each consequent pair is wider empathizing tail info more and more for each higher order metric.
Unlike the classic box plot, where inner thresholds are quartiles and the rest are based on em, here the basis is median (minimises L1), I base inner thresholds on it, and we continue the pattern by basing the further set of levels on the previous set. So unlike the classic box plot, here we have coherency in construction, symmetry.
Another thing to pay attention to, tho for some reason ain’t many talk about it, it’s not conceptually right to think that “you got data and you apply std moments on it”. No, you apply it to ‘centered around smth’ data. That ‘smth’ should minimize L2 error in case of math, L1 error in case of algo, and L0 error in case of learning/MLish/optimizational/whatever-you-cal-it stuff. So in the case of L0, that’s actually the ‘mode’ of KDE, but that’s for another time. Anyways, in case of L2 it’s mean, so we center data around mean, and apply std moments on residuals. That’s the precise way of framing it. If you understand this, suddenly very interesting details like 0th and 1st central moments start to make sense. In case of quantiles, we center data around the median, and do further processing on residuals, same.
Oth moment (I call it init) is always 1, tho it’s interesting to extrapolate backwards the sequence for higher order moments construction, to understand how we actually end up with this zero.
1st moment (I call it bias) of residuals would be zero if you match centering and residuals analysis methods. But for some reason you didn’t do that (e.g centered data around midhinge or mean and applied QBAD on the centered data), you have to account for that bias.
Realizing stuff > understanding stuff
Learning 2981234 human invented fields < realizing the same unified principles how the Universe works
∞ Indicator

StyleLibraryLibrary "StyleLibrary"
A small library of Pine Script functions that return built-in style variables.
method sizeStyle(size)
Takes a `string` that returns the corresponding built-in size style variable.
Namespace types: series string, simple string, input string, const string
Parameters:
size (string) : A `string` representing a built-in size style: `"Tiny"`, `"Small"`, `"Normal"`, `"Large"`,
`"Huge"`, `"Auto"`.
Returns: The respective built-in size style variable.
method sizeStyle(size)
Takes a `sizeStyle` that returns the corresponding built-in size style variable.
Namespace types: series sizeStyle
Parameters:
size (series sizeStyle) : A `sizeStyle` representing a built-in size style variable.
Returns: The respective built-in size style variable.
method lineStyle(style)
Takes a `string` that returns the corresponding built-in line style variable.
Namespace types: series string, simple string, input string, const string
Parameters:
style (string) : A `string` representing a built-in line style: `"Dashed"`, `"Dotted"`, `"Solid"`.
Returns: The respective built-in line style variable.
method lineStyle(style)
Takes a `lineStyle` that returns the corresponding built-in line style variable.
Namespace types: series lineStyle
Parameters:
style (series lineStyle) : A `lineStyle` representing a built-in line style variable.
Returns: The respective built-in line style variable.
method labelStyle(style)
Takes a `string` that returns the corresponding built-in label style variable.
Namespace types: series string, simple string, input string, const string
Parameters:
style (string) : A `string` representing a built-in label style:
`"Arrow Down"`, `"Arrow Up"`, `"Circle"`, `"Cross"`, `"Diamond"`, `"Flag"`,
`"Label Center"`, `"Label Down"`, `"Label Left"`, `"Label Lower Left"`,
`"Label Lower Right"`, `"Label Right"`, `"Label Up"`, `"Label Upper Left"`,
`"Label Upper Right"`, `"None"`, `"Square"`, `"Text Outline"`, `"Triangle Down"`,
`"Triangle Up"`, `"XCross"`.
Returns: The respective built-in label style variable.
method labelStyle(style)
Takes a `labelStyle` that returns the corresponding built-in label style variable.
Namespace types: series labelStyle
Parameters:
style (series labelStyle) : A `labelStyle` representing a built-in label style variable.
Returns: The respective built-in label style variable.
method fontStyle(font)
Takes a `string` that returns the corresponding built-in font style variable.
Namespace types: series string, simple string, input string, const string
Parameters:
font (string) : A `string` representing a built-in font style: `"Default"`, `"Monospace"`.
Returns: The respective built-in font style variable.
method positionStyle(position)
Takes a `string` that returns the corresponding built-in position style variable.
Namespace types: series string, simple string, input string, const string
Parameters:
position (string) : A `string` representing a built-in position style:
`"Bottom Center", `"Bottom Left", `"Bottom Right", `"Middle Center", `"Middle Left",
`"Middle Right", `"Top Center", `"Top Left", `"Top Right".
Returns: The respective built-in position style variable.
method displayStyle(display)
Takes a `simple string` that returns the corresponding built-in display style variable.
Namespace types: simple string, input string, const string
Parameters:
display (simple string) : A `simple string` representing a built-in display style: `"All"`, `"Data Window"`,
`"None"`, `"Pane"`, `"Price Scale"`, `"Status Line"`.
Returns: The respective built-in display style variable. Library

Indicator

Jurik Price Bands and Range Box [BigBeluga]Jurik Price Bands and Range Box
The Jurik Price Bands and Range Box - BigBeluga indicator is an advanced technical analysis tool that combines Jurik Moving Average (JMA) based price bands with a dynamic range box. This versatile indicator is designed to help traders identify trends, potential reversal points, and price ranges over a specified period.
🔵 KEY FEATURES
● Jurik Price Bands
Utilizes Jurik Moving Average for smoother, more responsive bands
//@function Calculates Jurik Moving Average
//@param src (float) Source series
//@param len (int) Length parameter
//@param ph (int) Phase parameter
//@returns (float) Jurik Moving Average value
jma(src, len, ph) =>
var float jma = na
var float e0 = 0.0
var float e1 = 0.0
var float e2 = 0.0
phaseRatio = ph < -100 ? 0.5 : ph > 100 ? 2.5 : ph / 100 + 1.5
beta = 0.45 * (len - 1) / (0.45 * (len - 1) + 2)
alpha = math.pow(beta, phaseRatio)
e0 := (1 - alpha) * src + alpha * nz(e0 )
e1 := (src - e0) * (1 - beta) + beta * nz(e1 )
e2 := (e0 + phaseRatio * e1 - nz(jma )) * math.pow(1 - alpha, 2) + math.pow(alpha, 2) * nz(e2 )
jma := e2 + nz(jma )
jma
Consists of an upper band, lower band, and a smooth price line
Bands adapt to market volatility using Jurik MA on ATR
Helps identify potential trend reversal points and overextended market conditions
● Dynamic Range Box
Displays a box representing the price range over a specified period
Calculates high, low, and mid-range prices
Option for adaptive mid-range calculation based on average price
Provides visual representation of recent price action and volatility
● Price Position Indicator
Shows current price position relative to the mid-range
Displays percentage difference from mid-range
Color-coded for quick trend identification
● Dashboard
Displays key information including current price, range high, mid, and low
Shows trend direction based on price position relative to mid-range
Provides at-a-glance market context
🔵 HOW TO USE
● Trend Identification
Use the middle of the Range Box as the primary trend reference point
Price above the middle of the Range Box indicates an uptrend
Price below the middle of the Range Box indicates a downtrend
The bar on the right shows the percentage distance of the close from the middle of the box
This percentage indicates both trend direction and strength
Refer to the dashboard for quick trend direction confirmation
● Potential Reversal Points
Upper and lower Jurik Bands can indicate potential trend reversal points
Price reaching or exceeding these bands may suggest overextended conditions
Watch for price reaction at these levels for possible trend shifts or pullbacks
Range Box high and low can serve as additional reference points for price action
● Range Analysis
Use Range Box to gauge recent price volatility and trading range
Mid-range line can act as a pivot point for short-term price movements
Percentage difference from mid-range helps quantify price position strength
🔵 CUSTOMIZATION
The Jurik Price Bands and Range Box indicator offers several customization options:
Adjust Range Box length for different timeframe analysis
Toggle between standard and adaptive mid-range calculation
Standard:
Adaptive:
Modify Jurik MA length and deviation for band calculation
Toggle visibility of Jurik Bands
By fine-tuning these settings, traders can adapt the indicator to various market conditions and personal trading strategies.
The Jurik Price Bands and Range Box indicator provides a multi-faceted approach to market analysis, combining trend identification, potential reversal point detection, and range analysis in one comprehensive tool. The use of Jurik Moving Average offers a smoother, more responsive alternative to traditional moving averages, potentially providing more accurate signals.
This indicator can be particularly useful for traders looking to understand market context quickly, identify potential reversal points, and assess current market volatility. The combination of dynamic bands, range analysis, and the informative dashboard provides traders with a rich set of data points to inform their trading decisions.
As with all technical indicators, it's recommended to use the Jurik Price Bands and Range Box in conjunction with other forms of analysis and within the context of a well-defined trading strategy. While this indicator provides valuable insights, it should be considered alongside other factors such as overall market conditions, volume, and fundamental analysis when making trading decisions. Indicator

Library

Buy/Sell BoxThis indicator tries to identify the points where the price exceeds or falls below a rectangle based on the opening and closing prices of the previous period, the creation of the boxes occurs when a doji is detected therefore it will calculate the coordinates of the rectangle that will be drawn around it, therefore the indicator offers buy or sell signals based on this logic. Specifically, the buy signal is generated if the closing price is above the top of the rectangle and satisfies some previous price conditions while the sell signal is generated if the closing price is below the bottom of the rectangle and satisfies some conditions of previous prices within a further threshold based on the Ema 150.
Lines are then drawn on the graph to visually display the extreme price levels, which can be useful for any confirmation of buy and sell signals, Stop Loss and Take Profit, Trend Filter (to visually understand if the trend is bullish or bearish)
A potentially effective trading strategy could involve identifying buy and sell signals near the extreme price level lines drawn by the indicator. This approach can be used to try to improve the accuracy of your trading signals and make more informed decisions. For example:
When you receive a buy or sell signal based on the dojis and rectangles generated by the indicator, check whether the price is also near one of the extreme price level lines. If you are receiving a buy signal and notice that the current price is near a low of the lower level line, this may further confirm the buying opportunity, as the price is near a significant resistance level. On the contrary, if the sell signal was close to a maximum price level it could confirm an excellent short entry.
It is also possible to use the boxes as reference points to set the stop loss and take profit levels. If you are entering a buy position, you might consider setting your stop loss just below an upper line of the last box. Additionally, you may want to set your take profit near a higher price level if you are looking to maximize profits. This will help manage risks and protect your capital.
Indicator

Psychological Support/Resistence [BigBeluga]The Psychological Support/Resistance indicator aims to provide the user with hypothetical support and resistance zones that are likely to provoke a strong reaction in price, either in both directions, providing good bouncing zones or significant movements once those levels are breached.
🔶 CALCULATION
The script takes into consideration the total number of sequential candles moving in the same direction, as determined by the user's settings. When this sequence is identified, a level is created.
A level is considered broken when the candle's close is above the top/bottom of the level.
Users have the option to select the width of the area based on the Average (AVG), Open, or Close.
AVG will provide the average width of the level of the area.
Close will offer a broader range to work with.
Open will provide a very narrow area.
🔶 METHODOLOGY
The idea behind these areas is that the price will be more likely to produce either a substantial move in the ongoing direction or, when breached, a strong price reaction.
The more the support level is touched or tested, the more likely it is to break.
The longer it has been since its creation and the less it has been tested, the more likely it is to offer strong support or resistance.
Wicks starting to close above the level will indicate a potential breakout to the upside or downside if a candle manages to close above it.
🔶 INPUTS
Users have the option to determine the number of sequential candles.
Users also have the option to decide how many zones to display on the chart.
Color changes are possible.
The possibility to show volume on the creation of the zone is included." Indicator

Contraction Box & Doji LinesContraction & Doji Lines indicator is designed to identify and visualize potential support and resistance levels on a price chart. It does this by detecting doji candlestick patterns and drawing horizontal lines from the middle of the doji bodies to the right. Additionally, it also highlights price contraction zones with colored boxes.
The indicator first identifies doji candlestick patterns that it suggests indecision in the market, a horizontal line and these horizontal lines can act as potential support or resistance levels. Traders can observe price reactions around these lines. If the price approaches a line and bounces off it, it may indicate a significant level in the market.
In addition to doji lines, this indicator also highlights price contraction zones. When a contraction zone is detected, a colored box is drawn to highlight this zone. The box extends from the fifth bar ago (left side) to the current bar (right side), with the highest high and lowest low of the identified zone. The color and width of this box can be customized using the "Box Line Border Color," "Box Background Color," and "Box Width" parameters.
A possible strategy could be can use the doji lines as potential support and resistance levels to make trading decisions. For example, if the price breaks above a doji line and holds, it may indicate a bullish signal.
The colored boxes highlight areas of price contraction, which often precede significant price movements. Traders can use these zones to anticipate potential breakouts or breakdowns.
For example, you might enter a long (buy) position if it anticipate a breakout from a contraction zone with a target price set above the breakout level. Conversely, you might enter a short (sell) position if they anticipate a breakdown from a contraction zone with a target price set below the breakdown level.
Indicator

Bollinger Bands Heatmap (BBH)The Bollinger Bands Heatmap (BBH) Indicator provides a unique visualization of Bollinger Bands by displaying the full distribution of prices as a heatmap overlaying your price chart. Unlike traditional Bollinger Bands, which plot the mean and standard deviation as lines, BBH illustrates the entire statistical distribution of prices based on a normal distribution model.
This heatmap indicator offers traders a visually appealing way to understand the probabilities associated with different price levels. The lower the weight of a certain level, the more transparent it appears on the heatmap, making it easier to identify key areas of interest at a glance.
Key Features
Dynamic Heatmap: Changes in real-time as new price data comes in.
Fully Customizable: Adjust the scale, offset, alpha, and other parameters to suit your trading style.
Visually Engaging: Uses gradients of colors to distinguish between high and low probabilities.
Settings
Scale
Tooltip: Scale the size of the heatmap.
Purpose: The 'Scale' setting allows you to adjust the dimensions of each heatmap box. A higher value will result in larger boxes and a more generalized view, while a lower value will make the boxes smaller, offering a more detailed look at price distributions.
Values: You can set this from a minimum of 0.125, stepping up by increments of 0.125.
Scale ATR Length
Tooltip: The ATR used to scale the heatmap boxes.
Purpose: This setting is designed to adapt the heatmap to the instrument's volatility. It determines the length of the Average True Range (ATR) used to size the heatmap boxes.
Values: Minimum allowable value is 5. You can increase this to capture more bars in the ATR calculation for greater smoothing.
Offset
Tooltip: Offset mean by ATR.
Purpose: The 'Offset' setting allows you to shift the mean value by a specified ATR. This could be useful for strategies that aim to capitalize on extreme price movements.
Values: The value can be any floating-point number. Positive values shift the mean upward, while negative values shift it downward.
Multiplier
Tooltip: Bollinger Bands Multiplier.
Purpose: The 'Multiplier' setting determines how wide the Bollinger Bands are around the mean. A higher value will result in a wider heatmap, capturing more extreme price movements. A lower value will tighten the heatmap around the mean price.
Values: The minimum is 0, and you can increase this in steps of 0.2.
Length
Tooltip: Length of Simple Moving Average (SMA).
Purpose: This setting specifies the period for the Simple Moving Average that serves as the basis for the Bollinger Bands. A higher value will produce a smoother average, while a lower value will make it more responsive to price changes.
Values: Can be set to any integer value.
Heat Map Alpha
Tooltip: Opacity level of the heatmap.
Purpose: This controls the transparency of the heatmap. A lower value will make the heatmap more transparent, allowing you to see the price action more clearly. A higher value will make the heatmap more opaque, emphasizing the bands.
Values: Ranges from 0 (completely transparent) to 100 (completely opaque).
Color Settings
High Color & Low Color: These settings allow you to customize the gradient colors of the heatmap.
Purpose: Use contrasting colors for better visibility or colors that you prefer. The 'High Color' is used for areas with high density (high probability), while the 'Low Color' is for low-density areas (low probability).
Usage Scenarios for Settings
For Volatile Markets: Increase 'Scale ATR Length' for better smoothing and set a higher 'Multiplier' to capture wider price movements.
For Trend Following: You might want to set a larger 'Length' for the SMA and adjust 'Scale' and 'Offset' to focus on more probable price zones.
These are just recommendations; feel free to experiment with these settings to suit your specific trading requirements.
How To Interpret
The heatmap gives a visual representation of the range within which prices are likely to move. Areas with high density (brighter color) indicate a higher probability of the price being in that range, whereas areas with low density (more transparent) indicate a lower probability.
Bright Areas: Considered high-probability zones where the price is more likely to be.
Transparent Areas: Considered low-probability zones where the price is less likely to be.
Tips For Use
Trend Confirmation: Use the heatmap along with other trend indicators to confirm the strength and direction of a trend.
Volatility: Use the density and spread of the heatmap as an indication of market volatility.
Entry and Exit: High-density areas could be potential support and resistance levels, aiding in entry and exit decisions.
Caution
The Bollinger Bands Heatmap assumes a normal distribution of prices. While this is a standard assumption in statistics, it is crucial to understand that real-world price movements may not always adhere to a normal distribution.
Conclusion
The Bollinger Bands Heatmap Indicator offers traders a fresh perspective on Bollinger Bands by transforming them into a visual, real-time heatmap. With its customizable settings and visually engaging display, BBH can be a useful tool for traders looking to understand price probabilities in a dynamic way.
Feel free to explore its features and adjust the settings to suit your trading strategy. Happy trading! Indicator

ObjectHelpersLibrary "ObjectHelpers"
Line | Box | Label | Linefill -- Maker, Setter, Getter Library
TODO: add table functionality
set(object)
set all params for `line`, `box`, `label`, `linefill` objects with 1 function
***
## Overloaded
***
```
method set(line Line, int x1=na, float y1=na, int x2=na, float y2=na,string xloc=na,string extend=na,color color=na,string style=na,int width=na,bool update=na) => line
```
### Params
- **Line** `line` - line object | `required`
- **x1** `int` - value to set x1
- **y1** `float` - value to set y1
- **x2** `int` - value to set x2
- **y2** `float` - value to set y2
- **xloc** `int` - value to set xloc
- **yloc** `int` - value to set yloc
- **extend** `string` - value to set extend
- **color** `color` - value to set color
- **style** `string` - value to set style
- **width** `int` - value to set width
- **update** `bool` - value to set update
***
```
method set(box Box,int left=na,float top=na,int right=na, float bottom=na,color bgcolor=na,color border_color=na,string border_style=na,int border_width=na,string extend=na,string txt=na,color text_color=na,string text_font_family=na,string text_halign=na,string text_valign=na,string text_wrap=na,bool update=false) => box
```
### Params
- **Box** `box` - box object
- **left** `int` - value to set left
- **top** `float` - value to set top
- **right** `int` - value to set right
- **bottom** `float` - value to set bottom
- **bgcolor** `color` - value to set bgcolor
- **border_color** `color` - value to set border_color
- **border_style** `string` - value to set border_style
- **border_width** `int` - value to set border_width
- **extend** `string` - value to set extend
- **txt** `string` - value to set _text
- **text_color** `color` - value to set text_color
- **text_font_family** `string` - value to set text_font_family
- **text_halign** `string` - value to set text_halign
- **text_valign** `string` - value to set text_valign
- **text_wrap** `string` - value to set text_wrap
- **update** `bool` - value to set update
***
```
method set(label Label,int x=na,float y=na, string txt=na,string xloc=na,color color=na,color textcolor=na,string size=na,string style=na,string textalign=na,string tooltip=na,string text_font_family=na,bool update=false) => label
```
### Paramas
- **Label** `label` - label object
- **x** `int` - value to set x
- **y** `float` - value to set y
- **txt** `string` - value to set text add`"+++"` to the _text striing to have the current label text concatenated to the location of the "+++")
- **textcolor** `color` - value to set textcolor
- **size** `string` - value to set size
- **style** `string` - value to set style (use "flip" ,as the style to have label flip to top or bottom of bar depending on if open > close and vice versa)
- **text_font_family** `string` - value to set text_font_family
- **textalign** `string` - value to set textalign
- **tooltip** `string` - value to set tooltip
- **update** `bool` - update label to next bar
***
```
method set(linefill Linefill=na,line line1=na,line line2=na,color color=na) => linefill
```
### Params
- **linefill** `linefill` - linefill object
- **line1** `line` - line object
- **line2** `line` - line object
- **color** `color` - color
Parameters:
object (obj)
Returns: `line`, `box`, `label`, `linefill`
method set(Line, x1, y1, x2, y2, xloc, extend, color, style, width, update)
set the location params of a line with 1 function auto detects time or bar_index for xloc param
Namespace types: series line
Parameters:
Line (line) : `line` - line object | `required`
x1 (int) : `int` - value to set x1
y1 (float) : `float` - value to set y1
x2 (int) : `int` - value to set x2
y2 (float) : `float` - value to set y2
xloc (string) : `int` - value to set xloc
extend (string) : `string` - value to set extend
color (color) : `color` - value to set color
style (string) : `string` - value to set style
width (int) : `int` - value to set width
update (bool) : `bool` - value to set update
Returns: `line`
method set(Box, left, top, right, bottom, bgcolor, border_color, border_style, border_width, extend, txt, text_color, text_font_family, text_halign, text_valign, text_wrap, update)
set the location params of a box with 1 function
Namespace types: series box
Parameters:
Box (box) : `box` - box object | `required`
left (int) : `int` - value to set left
top (float) : `float` - value to set top
right (int) : `int` - value to set right
bottom (float) : `float` - value to set bottom
bgcolor (color) : `color` - value to set bgcolor
border_color (color) : `color` - value to set border_color
border_style (string) : `string` - value to set border_style
border_width (int) : `int` - value to set border_width
extend (string) : `string` - value to set extend
txt (string) : `string` - value to set _text
text_color (color) : `color` - value to set text_color
text_font_family (string) : `string` - value to set text_font_family
text_halign (string) : `string` - value to set text_halign
text_valign (string) : `string` - value to set text_valign
text_wrap (string) : `string` - value to set text_wrap
update (bool) : `bool` - value to set update
Returns: `box`
method set(Label, x, y, txt, xloc, color, textcolor, size, style, textalign, tooltip, text_font_family, update)
set the location params of a label with 1 function auto detects time or bar_index for xloc param
Namespace types: series label
Parameters:
Label (label) : `label` | `required`
x (int) : `int` - value to set x
y (float) : `float` - value to set y
txt (string) : `string` - value to set text add`"+++"` to the _text striing to have the current label text concatenated to the location of the "+++")
xloc (string)
color (color)
textcolor (color) : `color` - value to set textcolor
size (string) : `string` - value to set size
style (string) : `string` - value to set style (use "flip" ,as the style to have label flip to top or bottom of bar depending on if open > close and vice versa)
textalign (string) : `string` - value to set textalign
tooltip (string) : `string` - value to set tooltip
text_font_family (string) : `string` - value to set text_font_family
update (bool) : `bool` - update label to next bar
Returns: `label`
method set(Linefill, line1, line2, color)
change the 1 or 2 of the lines in a linefill object
Namespace types: series linefill
Parameters:
Linefill (linefill)
line1 (line) : `line` - line object
line2 (line) : `line` - line object
color (color) : `color` - color
Returns: `linefill`
get(object)
get all of the location variables for `line`, `box`, `label` objects or the line objects from a `linefill`
***
## Overloaded
***
```
method get(line Line) =>
```
### Params
- **Line** `line` - line object | `required`
***
```
method get(box Box) =>
```
### Params
- **Box** `box` - box object | `required`
***
```
method get(label Label) =>
```
### Paramas
- **Label** `label` - label object | `required`
***
```
method get(linefill Linefill) =>
```
### Params
- **Linefill** `linefill` - linefill object | `required`
Parameters:
object (obj)
Returns: ` `
method get(Line)
Gets the location paramaters of a Line
Namespace types: series line
Parameters:
Line (line) : `line` - line object
Returns:
method get(Box)
Gets the location paramaters of a Box
Namespace types: series box
Parameters:
Box (box) : `box` - box object
Returns:
method get(Label)
Gets the `x`, `y`, `text` of a Label
Namespace types: series label
Parameters:
Label (label) : `label` - label object
Returns:
method get(Linefill)
Gets `line 1`, `line 2` from a Linefill
Namespace types: series linefill
Parameters:
Linefill (linefill) : `linefill` - linefill object
Returns:
method set_x(Line, x1, x2)
set the `x1`, `x2` of a line
***
### Params
- **Line** `line` - line object | `required`
- **x1** `int` - value to set x1 | `required`
- **x2** `int` - value to set x2 | `required`
Namespace types: series line
Parameters:
Line (line) : `line` - line object
x1 (int) : `int` - value to set x1
x2 (int) : `int` - value to set x2
Returns: `line`
method set_y(Line, y1, y2)
set `y1`, `y2` of a line
***
### Params
- **Line** `line` - line object | `required`
- **y1** `float` - value to set y1 | `required`
- **y2** `float` - value to set y2 | `required`
Namespace types: series line
Parameters:
Line (line) : `line` - line object
y1 (float) : `float` - value to set y1
y2 (float) : `float` - value to set y2
Returns: `line`
method Line(x1, y1, x2, y2, extend, color, style, width)
Similar to `line.new()` but can detect time or bar_index for xloc param and has defaults for all params but `x1`, `y1`, `x2`, `y2`
***
### Params
- **x1** `int` - value to set
- **y1** `float` - value to set
- **x2** `int` - value to set
- **y2** `float` - value to set
- **extend** `string` - extend value to set line
- **color** `color` - color to set line
- **style** `string` - style to set line
- **width** `int` - width to set line
Namespace types: series int, simple int, input int, const int
Parameters:
x1 (int) : `int` - value to set
y1 (float) : `float` - value to set
x2 (int) : `int` - value to set
y2 (float) : `float` - value to set
extend (string) : `string` - extend value to set line
color (color) : `color` - color to set line
style (string) : `string` - style to set line
width (int) : `int` - width to set line
Returns: `line`
method Box(left, top, right, bottom, extend, border_color, bgcolor, text_color, border_width, border_style, txt, text_halign, text_valign, text_size, text_wrap)
similar to box.new() with the but can detect xloc param and has defaults for everything but location params
***
### Params
- **left** `int` - value to set
- **top** `float` - value to set
- **right** `int` - value to set
- **bottom** `float` - value to set
- **extend** `string` - extend value to set box
- **border_color** `color` - color to set border
- **bgcolor** `color` - color to set background
- **text_color** `color` - color to set text
- **border_width** `int` - width to set border
- **border_style** `string` - style to set border
- **txt** `string` - text to set
- **text_halign** `string` - horizontal alignment to set text
- **text_valign** `string` - vertical alignment to set text
- **text_size** `string` - size to set text
- **text_wrap** `string` - wrap to set text
Namespace types: series int, simple int, input int, const int
Parameters:
left (int) : `int` - value to set
top (float) : `float` - value to set
right (int) : `int` - value to set
bottom (float) : `float` - value to set
extend (string) : `string` - extend value to set box
border_color (color) : `color` - color to set border
bgcolor (color) : `color` - color to set background
text_color (color) : `color` - color to set text
border_width (int) : `int` - width to set border
border_style (string) : `string` - style to set border
txt (string) : `string` - text to set
text_halign (string) : `string` - horizontal alignment to set text
text_valign (string) : `string` - vertical alignment to set text
text_size (string) : `string` - size to set text
text_wrap (string) : `string` - wrap to set text
Returns: `box`
method Label(txt, x, y, yloc, color, textcolor, style, size, textalign, text_font_family, tooltip)
Similar to label.new() but can detect time or bar_index for xloc param and has defaults for all params but x, y, txt, tooltip
***
### Params
- **txt** `string` - string to set
- **x** `int` - value to set
- **y** `float` - value to set
- **yloc** `string` - y location to set
- **color** `color` - label color to set
- **textcolor** `color` - text color to set
- **style** `string` - style to set
- **size** `string` - size to set
- **textalign** `string` - text alignment to set
- **text_font_family** `string` - font family to set
- **tooltip** `string` - tooltip to set
Namespace types: series string, simple string, input string, const string
Parameters:
txt (string) : `string` - string to set
x (int) : `int` - value to set
y (float) : `float` - value to set
yloc (string) : `string` - y location to set
color (color) : `color` - label color to set
textcolor (color) : `color` - text color to set
style (string) : `string` - style to set
size (string) : `string` - size to set
textalign (string) : `string` - text alignment to set
text_font_family (string) : `string` - font family to set
tooltip (string) : `string` - tooltip to set
Returns: `label`
obj
Fields:
obj (series__string) Library

Indicator
