Squaring The RangeSquaring The Range (STR Pro)
Squaring The Range is a comprehensive geometric and time-cycle analysis tool engineered to calculate the mathematical relationship between price and time. Built on the foundational principles of W.D. Gann and esoteric market geometry, this indicator dynamically detects structural market legs and projects a master geometric square to forecast future support, resistance, and cyclical turning points.
Instead of relying on lagging moving averages or standard oscillators, this tool treats price and time as equal, unified vectors, allowing you to visualize the harmonic grid underlying market movements.
Why It Works
Financial markets do not move randomly; they expand and contract in proportional, geometric ratios. When a market establishes a significant high and a significant low, the space between them forms a "master square."
According to the law of vibration and Gann theory, the original energy that created the initial price range will dictate the future rhythm of the market. By subdividing this range into specific musical and mathematical octaves (eighths) and harmonic thirds, we expose the natural barriers where price action is mathematically forced to react. When the time it took to form the range is duplicated or fractionally divided, time and price "square out," resulting in high-probability trend reversals or accelerations.
How It Works
The STR Pro engine operates by identifying the most mathematically significant price swing within a defined window.
Swing Detection Engine: The script uses a lag-aware pivot detection system to identify structural highs and lows. It does not repaint. A swing is only confirmed after a set number of lower highs or higher lows form on both sides.
The Geometric Box: Once the high and low are confirmed, the indicator draws a foundational box connecting the two points, establishing the base price range and time vector (bar count).
Subdivisions: The price range is automatically sliced into 1/8 and 1/3 fractions. The time vector is divided into identical proportional fractions.
Vector Angles: Gann angles (1x1, 2x1, 1x2, 1x4, 4x1) are cast outward from the primary pivots. The 1x1 angle represents a perfectly balanced market moving one unit of price per one unit of time.
How To Use
1. Finding Confluence (Nodes)
The highest probability trade setups occur at "Major Nodes." These are coordinates on the chart where a horizontal price fraction (e.g., the 4/8 or 50% midline) perfectly intersects with a vertical time division (e.g., the 1/2 cycle mark). Watch for price action to consolidate or sharply reverse when it strikes a Major Node (marked in Gold) or Minor Node (marked in Silver).
2. Trading the Anniversary Cycles
The indicator projects 1x, 2x, and 3x "Anniversary" lines forward in time. If a market took 45 bars to form the initial range, the 1x Anniversary will plot exactly 45 bars later. Trend exhaustion and aggressive reversals frequently occur precisely on these vertical time boundaries.
3. Utilizing Gann Angles
Monitor price interaction with the ascending and descending angles.
If price is holding above an ascending 1x1 angle from the low, the trend is incredibly strong.
If price breaks below the 1x1, it mathematically targets the 1x2 angle next, signaling a deceleration in market velocity.
Settings Tutorial
► Pivot Selection & Auto-Detect
Use Auto-Detection: Toggle between the algorithm finding the pivots or you entering exact timestamps manually.
Auto-Detect Mode:
Macro Swing Extremes: Finds the highest structural high and lowest structural low in the window.
Latest Swing Leg: Squares only the most recent completed move.
Raw Extremes: Finds the absolute high/low regardless of swing structure.
Swing Strength: The number of bars required on each side of a candle to confirm a pivot. Higher numbers equal major structural swings; lower numbers catch micro swings.
Auto Lookback Window: The maximum number of bars the engine searches to find the swings.
Manual Pivot Times: If Auto-Detection is off, enter the exact date and time of the high and low you wish to square.
► Master Overlays & Fractions
Geometric Box / Nodes: Toggle the visibility of the primary bounding box and the intersection nodes.
Price Fractions: Choose whether to display the 1/8 octaves, the 1/3 thirds, or both.
Label Every Other Fraction: Cleans up the chart UI by hiding half the text labels while keeping the geometric lines visible.
► Gann Angles & Time Cycles
Gann Angles: Toggle individual angles (1x1, 1x2, 2x1, 1x4, 4x1).
Forward Projections: Controls how far into the future the angles cast (measured in multiples of the original time vector).
Division Cycles: How many times the original time vector is duplicated and sub-divided forward on the chart.
Anniversary Count: Controls how many vertical Anniversary cycle lines are projected.
► Alerts
STR Pro uses a unified alert system. You only need to create ONE alert in TradingView for this script (Condition: "Any alert() function call").
Use the toggles in this section to choose which specific events (price crossing a 1/8 level, hitting a time division, or striking an angle) will trigger that master alert.
► Visuals & Dashboard
Show Dashboard (HUD): Displays a live data panel showing the exact coordinates of the active pivots, the point value of the price range, the bar count of the time vector, and the active 1x1 scale ratio. Position and size can be adjusted to fit your layout. 지표

PyraTime True Trend Line (PTTL)PTTL builds a dynamic, vector-based geometric framework utilizing two extreme market pivots (A and B) and projects their mathematical structure forward in price and time. Because it processes its own internal OHLCV data array, it bypasses native TradingView history constraints, allowing historical vectors to act on live price action without breaking down.
Why This Works
Standard trend lines are notoriously subjective, often skewed by the user pulling lines to fit a narrative. PTTL removes user bias by hard-locking purely to mathematical extremes.
Furthermore, instead of relying on a generalized Volume Profile across the entire screen, PTTL isolates its Vector POC strictly within the A-B impulse leg. This explicitly traps the liquidity nodes associated only with the trend currently being analyzed, rather than mixing it with unrelated historical chop.
How This Works
The Core Buffer: The indicator continuously records high, low, close, and volume data into a 5,000-bar rolling array. This isolates the calculations from TradingView's visual history and prevents data from dropping out when zooming or scrolling.
Dynamic Geometry: In Auto mode, PTTL perpetually hunts for the most significant A and B pivots. Because this window is dynamic, historical structure migrates as stronger dominant highs/lows appear.
Harmonic Divisions: By treating the maximum price deviation from the true A-B line as a 100% boundary, the tool mathematically slices the resulting channel into exact geometric fractions (1/8, 1/3, 1/2, etc.) to highlight internal support/resistance nodes.
Time & Price Squaring (AB=CD): PTTL measures the span of the A-B impulse and demands that the Point C retracement validates within a strict time window. Once validated, it targets an identical price/time expansion (Target D), actively grading the setup as Pending, Success, or Failed based on real-time price intersection.
Settings Guide
Mode Selection: Choose between Auto (dynamically scanning) and Manual (locking Point A to a user-defined timestamp).
Manual — One-Click Anchor: Anchor Point A to a specific timestamp and price. Pivot B Search Window dictates how many bars forward the tool should scan before permanently locking Point B into place.
Auto Mode Settings: Adjust the Scan Window to define how many bars back the tool searches for major swings, and set a Minimum AB Span to ensure it doesn't anchor to microscopic, noisy swings.
Features & Visibility: Toggle overlays like the True Trend Line, Vector POC, Parallel Channel, and Reflection angle.
AB=CD Settings: Configure the time allowance for Point C to form. If Hide Failed Patterns is on, invalidated geometries clear immediately to keep the chart clean.
Projection Settings: Decide whether Time Cycles scale against the duration of the A-B leg (× AB duration) or project forward uniformly (Fixed bars).
Alert Triggers: Fire native TradingView alerts the moment price crosses the True Trend Line, the maximum-deviation Channel rail, or the isolated Vector POC. 지표

Pattern Atlas : Geometric [AxeAlgo]Pattern Atlas : Geometric Patterns
WHAT THIS LIBRARY IS
This is a Pine Script v6 library of 17 classical chart pattern detectors — Head and Shoulders, Double/Triple Tops and Bottoms, triangles, wedges, flags, and the rest of the standard technical-analysis catalog built from swing highs and lows rather than single-candle shape. Unlike candlestick patterns, which read one to a handful of fixed bars, chart patterns span a variable, often large number of bars, so this library carries one small piece of state — a rolling history of confirmed swing pivots — that every pattern function reads from. Beyond that, the same philosophy as Library #1 applies: no plotting, no alerts, and no inputs in this script by design, since a library's job is to hand other scripts a clean, reusable, well-documented API, not to draw on a chart itself (Pine doesn't allow a library to plot anything anyway). If you're looking for a ready-to-use indicator built on top of this library, see the companion "Pattern Atlas : Geometric Indicator " script, which imports every function here and turns it into on-chart signals, measured-move price targets, a live scanner table, and alerts.
Chart pattern analysis is one of the foundational tools of classical technical analysis, going back to Edwards and Magee's original work and refined since by researchers like Thomas Bulkowski, whose statistical studies of pattern behavior are the closest thing this field has to an industry-standard reference. The patterns in this library follow that standard catalog, so anyone who already knows what a Head and Shoulders top or an Ascending Triangle looks like will recognize exactly what each function is checking for.
WHY A LIBRARY INSTEAD OF ONE MONOLITHIC INDICATOR
Splitting detection logic out as an importable library means:
- Any Pine coder building their own strategy, indicator, or screener can pull in exactly the pattern checks they need without copy-pasting swing-pivot and trendline math into every new script.
- The detection logic is tested and maintained in one place. When a threshold gets refined, everything importing this library benefits from the update by bumping one version number.
- It keeps the math separate from presentation — how a pattern gets drawn, colored, or alerted on is a completely separate decision from whether the pattern is actually present, and different users want different presentations.
HOW TO IMPORT AND USE IT
Add this line near the top of your script (adjust the version number to whatever the current published version is):
import AxeAlgo/Pattern_Atlas_Geometric/1 as geo
Unlike Library #1, most of the functions here need a shared pivot history to work from. Call trackPivots() exactly once per bar, then pass its result into every detect*() function that needs it:
pivots = geo.trackPivots()
match = geo.detectDoubleTopBottom(pivots)
if match.found
label.new(bar_index, high, match.patternName)
Four functions — detectSpike(), detectFlag(), detectPennant(), and detectIslandReversal() — read directly off recent price action instead of the shared pivot history, so they're called without a pivots argument: geo.detectSpike().
trackPivots() takes three optional parameters: leftBars and rightBars (how many less-extreme bars must surround a candidate swing point before it confirms as a pivot — higher values mean fewer, more significant pivots, at the cost of a longer confirmation lag), and maxPivots (how much pivot history to retain). All three have sensible defaults.
Every detect*() function returns the same structure, called ChartPatternMatch, so the calling pattern is identical no matter which of the 17 you use. It has nine fields:
- found — true if the pattern matched at the evaluated bar, false otherwise.
- patternName — the specific name of what matched (e.g. "Ascending Triangle"), na when not found.
- direction — "bullish" or "bearish".
- pivotBars — bar_index of each pivot the match was built from, in chronological order.
- pivotPrices — price of each pivot, in the same order as pivotBars.
- breakoutLevel — the support, resistance, or neckline level price broke through to confirm the pattern.
- necklineSlope — slope (price per bar) of the breakout line, na when the pattern's breakout level isn't a sloped line.
- barIndex — the bar_index the pattern completes (breaks out) on.
- description — a full sentence naming the pattern and the actual measured price levels that triggered it — genuinely useful for a tooltip or an alert message, not just a repeat of the pattern name.
Two additional exported functions turn that raw match into something more actionable, and both work on any ChartPatternMatch regardless of which detect*() function produced it:
- patternStrength(match) — a 0-100 score for how decisively the confirmation close broke through breakoutLevel, relative to the pattern's own price range. A breakout that clears the level by a meaningful fraction of the pattern's own size scores higher than a one-tick poke through it.
- patternTarget(match) — a classical measured-move price target, projecting the pattern's own height from the breakout point. Returns na for patterns without a reliable height to project from (V-Top/V-Bottom Spike, Island Reversal, Bump-and-Run Reversal).
Every detect*() function also exposes its own set of tunable threshold parameters — how flat a "flat top" has to be, how much two shoulders can differ and still count as equal, and so on — all with sensible defaults so you don't have to touch them unless you want to tighten or loosen a specific pattern's sensitivity for a particular instrument or timeframe.
THE 17 PATTERNS
Reversal patterns (7) — signal a potential change in the prevailing trend:
- Head and Shoulders / Inverse Head and Shoulders — detectHeadAndShoulders(). Three swing extremes with the middle one more extreme than the two roughly-equal outer ones, confirmed when price breaks the neckline connecting the two points between them.
- Double Top / Double Bottom — detectDoubleTopBottom(). Two roughly equal peaks (or troughs) with a retracement between them, confirmed when price breaks back through that retracement level.
- Triple Top / Triple Bottom — detectTripleTopBottom(). The same idea as a Double Top/Bottom with a third roughly-equal touch, confirmed on the break of the support or resistance formed between the touches.
- Rounding Top / Rounding Bottom — detectRoundingTopBottom(). A gradual, curved advance-and-rollover (or decline-and-recovery) between two similar edge levels. Approximate: read from three swing pivots rather than fitting a true curve.
- Diamond Top / Diamond Bottom — detectDiamondTopBottom(). Swing range that widens and then narrows again, confirmed on a break of the resulting support or resistance. Rare and approximate: read from three pivot pairs rather than a clean diamond outline.
- Broadening Formation — detectBroadeningTopBottom(). Diverging highs and lows forming an increasingly volatile range, confirmed on a break of either edge. Approximate: read from two pivot pairs rather than a hand-fitted diverging channel.
- V-Top / V-Bottom (Spike) — detectSpike(). A single sharp extreme with no rounding — a large move into the pivot and an equally large move away from it, both measured against the recent average bar range, within a handful of bars. Self-contained, no pivots argument needed.
Continuation patterns (8) — typically resolve in the direction of the move that preceded them:
- Ascending Triangle — detectTriangleAscending(). Flat resistance with rising support, confirmed on a break above resistance.
- Descending Triangle — detectTriangleDescending(). Flat support with falling resistance, confirmed on a break below support.
- Symmetrical Triangle — detectTriangleSymmetrical(). Converging highs and rising lows, confirmed (bullish or bearish) whichever side the price actually breaks.
- Rising Wedge / Falling Wedge — detectWedge(). Both trendlines slope the same direction and converge; breaks the opposite way from the slope, since the shared-direction move was already losing momentum.
- Bull Flag / Bear Flag — detectFlag(). A strong directional move (the pole), followed by a tight, roughly parallel pullback, confirmed on a break back out in the pole's direction. Self-contained, no pivots argument needed.
- Bull Pennant / Bear Pennant — detectPennant(). The same pole-and-consolidation structure as a Flag, but the consolidation narrows and converges rather than staying parallel. Self-contained, no pivots argument needed.
- Rectangle — detectRectangle(). Price boxed between flat support and flat resistance, confirmed on a break of either edge.
- Cup and Handle / Inverted Cup and Handle — detectCupAndHandle(). A rounded recovery (or decline) back to its starting rim, then a shallow pullback (the handle), confirmed on a break through the rim.
Structural / gap-based patterns (2):
- Bullish / Bearish Island Reversal — detectIslandReversal(). A bar (or small cluster) isolated by a gap on both sides, then abandoned by a gap the other way — an abrupt reversal. Self-contained, pure gap logic, no pivots argument needed.
- Bump-and-Run Reversal — detectBumpAndRun(). A lead-in trendline, then a "bump" phase accelerating well beyond it, then a "run" breaking back through the lead-in line. Approximate: the lead-in line is read from just two pivots rather than a hand-drawn trendline.
WHAT THIS LIBRARY DELIBERATELY DOES NOT DO
No plotting, no drawing, no alertcondition() calls, and no inputs — Pine doesn't allow any of those inside a library in the first place, since a library can never be added to a chart on its own. If you want signals, price targets, a scanner table, or alerts, import this library into your own script (or use the companion "Pattern Atlas : Chart Pattern Scanner " indicator, which does exactly that) rather than expecting this script to render anything by itself.
This library also does not evaluate multi-timeframe data, volume, or broader market structure — it's swing-pivot and trendline geometry only, on purpose, so its behavior is easy to reason about and easy to reuse as one building block among several.
Four of the seventeen patterns are explicitly noted above as approximate: Rounding Top/Bottom, Diamond Top/Bottom, Broadening Formation, and Bump-and-Run Reversal are read from a small, fixed number of swing pivots rather than fitting a true curve or hand-drawn trendline to the data. They will not catch every textbook-perfect example of these shapes, and they may occasionally flag a looser approximation of one. Treat them as a starting point for further chart review, not a final word.
PART OF A LARGER SERIES
This is Library #2 in the AxeAlgo Pattern Atlas — a planned set of Pine libraries splitting pattern detection by the method actually used to find each kind of pattern: candlestick shape (Library #1, already published), classical chart/geometric patterns (this library), harmonic patterns (Fibonacci-ratio XABCD structures), and market-structure concepts (order blocks, liquidity, Wyckoff-style events). Each library is independent and useful on its own; together they're meant to cover technical pattern analysis without forcing unrelated detection methods into the same function.
A NOTE ON REPAINTING
trackPivots() only confirms a swing pivot once rightBars bars have passed since it happened — the same confirmation lag ta.pivothigh()/ta.pivotlow() use, just written out as plain comparisons so it works safely inside a library's exported functions. That means a pivot never moves or disappears once confirmed; it just takes rightBars bars to become known, which is a normal and unavoidable part of swing-pivot detection, not a defect in this library. On the currently-forming bar, a pattern's found status can still change tick to tick as that bar's own high, low, and close move — that's inherent to reading live price action. If you're building persisted signals, drawings, alerts, or price targets on top of these functions (rather than a live "what's happening right now" readout), gate your usage on barstate.isconfirmed so a signal only fires once the bar it describes has actually closed, exactly like the companion scanner indicator does.
DISCLAIMER
This library is a technical analysis tool for identifying classical chart pattern shapes in historical and live price data. It does not predict future price movement, and a detected pattern — including any projected price target — is a description of past price action, not a signal guaranteed to repeat. Nothing in this script constitutes financial advice. Always combine pattern recognition with your own risk management and broader analysis before making any trading decision.
라이브러리

SmartTraders Research Labs -Geometric Trend Lines - GTLGEOMETRIC TREND LINES (GTL)
GTL is a research indicator that studies the geometry of price structures. It freezes structural anchors in the past, stretches two right-triangles between those anchors and the live candle, and reads their angles inside a dimensionless coordinate space — then learns from every completed structure to estimate, with calibrated statistics, which way the current one is leaning. It is a structural analysis and research tool, not a trading system.
█ STEP OUT OF THE CHART PLANE
Every trader has drawn a trendline and called it steep. Steep compared to what? Stretch the chart window and the angle flattens. Jump from Bitcoin to a quiet blue-chip stock and a "45-degree rally" becomes a completely different animal. The chart plane mixes two quantities that were never meant to share axes — price and time — so any angle drawn on it is a property of your zoom level, not of the market.
My standard, before any geometry begins, is to take the shape out of the chart plane entirely. GTL maps every point into an Isotropic Coordinate System (ICS) where both axes are pure numbers:
y = log(price) / σ
x = bars / lookback
Price is expressed in units of the instrument's own volatility (σ, estimated with the Yang-Zhang method over 500 bars), and time in units of the analysis window. Nothing on either axis carries dollars, lira, satoshis or minutes anymore.
In this space, a degree finally means something. The angle
θ = atan(Δy / Δx) × 180 / π
is intrinsic: a 60° ceiling angle on gold's 30-minute chart describes the same geometric event as a 60° ceiling angle on a 3-minute meme-coin chart. The instrument's personality — its price level, its tick size, its temperament — has been normalized away, and what remains is pure trajectory. Everything else in this indicator stands on that ground.
The same rally, two zoom levels, two different angles — and on the right, the dimensionless ICS home where θ finally becomes a property of the market, not of your screen.
█ THE TRIANGLE — A SHAPE THAT CARRIES DATA
Of all the shapes humanity has leaned on, the triangle is the one that never let us down. It raised the pyramids, it holds every bridge truss and roof frame you have ever walked under, and it is the only polygon that cannot be deformed without changing the length of a side. Engineers call that property rigidity. I read it as trustworthiness — a triangle does not lie about its geometry.
That is why I chose it as the measuring instrument. On every structure, GTL constructs two right-triangles inside ICS:
The ceiling triangle — from the frozen HH anchor to the live candle's high.
The floor triangle — from the frozen LL anchor to the live candle's low.
Each triangle is not a drawing; it is a container. Four measurements live inside it at every bar:
θ — the signed angle of the hypotenuse, the indicator's core reading
Δy — the signed magnitude of the move in volatility units
area — the geometric surface the structure has swept
centroid — the shape's center of mass in ICS
While price grinds below a frozen ceiling, the ceiling angle sinks degree by degree into negative territory. When price presses up from a frozen floor, the floor angle climbs. Two triangles breathe with the market — one watching from above, one from below — and their angles are the raw language everything downstream of this indicator speaks.
One triangle watches from above, one from below — and θ, Δy, area and centroid live inside each of them.
█ AN ANCHOR IN THE PAST — MEASURING FROM CALM WATER
Picture a storm at sea, and two people trying to measure the waves. One stands on the shore. One sits in a boat, right among them. The observer on the shore, feet on solid ground, reads the height of every wave with precision — however wild the water gets, the ground beneath him does not move. The observer in the boat rises and falls with the very thing he is trying to measure; every number he writes down is contaminated by his own motion.
Most swing-based tools are the observer in the boat. Their reference points — the latest swing high, the latest swing low — are redefined by the market again and again, so any angle or distance measured from them mixes two movements at once: the price's, and the reference's own.
GTL plants its observer on the shore. At the birth of every structure, the highest high and the lowest low of the lookback window are frozen — locked to a fixed bar in the past — and from that moment they do not move. Every angle is measured from calm, settled water toward the storm of the live candle. The reading stays pure: when θ changes, it is because price moved, and for no other reason.
The anchors hold until price closes beyond one of them. That close is the break — the moment the structure completes, is archived with its full geometry, and a fresh pair of anchors freezes for the next chapter.
One naming note, so the chart reads correctly: what GTL labels HH and LL are these frozen anchor levels, not the traditional trailing swing highs and lows.
Solid ground measures the storm precisely; a boat measures mostly itself — GTL is the observer on the shore, and the frozen box below is exactly that shore.
█ WHY 23 — A PRIME WINDOW
The lookback window — the number of bars GTL scans before freezing a new pair of anchors — defaults to 23. The choice is arithmetic, not aesthetic.
23 is prime: its only divisors are 1 and itself. Stated as a condition,
gcd(23, k) = 1 for every k < 23
For a rolling window, that matters mechanically. If a periodic component of length k shorter than the window is present in the data, the window boundary does not keep meeting that component at the same phase. Because 23 and k are coprime, the alignment steps through all k possible phase offsets before it repeats. A composite window gives that protection away: 24 divides cleanly by 2, 3, 4, 6, 8 and 12, so components at those lengths can meet repeated window boundaries at the same phase, allowing anchor placement to inherit regularity from the measuring frame itself.
Engineering solved the same problem with hunting-tooth gear design: tooth counts are chosen coprime so each tooth eventually meshes with every counterpart, instead of the same pairs meeting forever and wearing a repeated pattern into the metal. Periodical cicadas offer a biological analogy — 13- and 17-year emergence cycles, both prime, reduce overlap with shorter recurring cycles.
This is a design principle stated in number theory, not a performance claim. A prime window does not make GTL better by itself, and it does not prove anything about future price. It simply reduces one avoidable source of arithmetic resonance, so repetition in the readings is less likely to be created by the measuring window. The lookback remains a user input; 23 is the default I stand behind.
Every window from 20 to 25 shares a divisor with at least one shorter cycle length — 23 is the only empty row, which is exactly why it is the default.
█ HOW THIS SERIES IS BUILT — CSV OUT, ANALYSIS IN
This episode follows a working method I now treat as the standard for the whole series: nothing ships on intuition alone. The indicator exports its own internal life — every angle, every structure, every break — as plain columns in the Data Window, ready for CSV export. Before publication, those exports were analyzed with AI assistance across a deliberately diverse panel:
7 instruments × 2 timeframes = 14 datasets
gold, Bitcoin, Tesla, Brent crude, Turkish Airlines, Dogecoin, Saudi Aramco
30-minute and 3-minute bars — roughly 550,000 bars, ~30,000 completed structures
What came back from that study entered the code as design decisions, not as promises. Exactly five constants in the learning layer are hard-coded. They are not presented as universal truths or performance guarantees; they are documented design constants selected from the development study and kept fixed so the live model remains transparent and reproducible:
CAL_LAMBDA = 0.999 — fading-factor decay for the calibration counters
CAL_JUMPTH = 2.0 — empirical jumpiness threshold between steady and choppy estimates
CAL_MINW = 30 — minimum effective sample weight before a calibration cell is trusted
CAL_ROLL = 20 — length of the live recent-record window
JUMP_WIN = 5 — bars used for the short-term stability measurement
The methods behind the layer are standard enough to be named — fading-factor prequential counting for online calibration, adaptive Gaussian KDE for local probability estimation, and Kish-style effective sample size for weighted evidence — and the next section walks through each of them with its reference. The fixed values above are GTL's calibrated defaults from that study, not claims that these numbers are optimal for every market, symbol, or timeframe. Everything else the statistics need — bandwidth, confidence, significance — is computed live from the chart's own history.
Two honest disclosures. First, this analysis is development documentation, not an independent audit, and this description makes no accuracy claims from it. Second, the same door is open to you: every column used in that study is exported by the script itself, so you can pull the CSV from your own chart and put the same questions to any tool you trust.
The build loop of this series: the script exports its own life as CSV, analysis turns it into five documented design constants, and the same door stays open to every user.
█ FROM GEOMETRY TO STATISTICS — THE MATH, WITH ITS REFERENCES
An angle is a measurement; an estimate is a statement. Moving from one to the other honestly requires statistics. GTL does not present this layer as a private invention. It combines established statistical components, named here with their sources, and applies them to one specific object: the geometry of frozen price structures.
Volatility normalization. The σ in the ICS y-axis comes from the Yang-Zhang volatility estimator (Yang & Zhang, Journal of Business, 2000). It uses open, high, low and close data, including overnight, open-to-close and Rogers-Satchell-style range components. In GTL, this is what lets angles be measured in volatility-normalized space instead of raw price units.
Local probability. While a structure is alive, its current angle pair (θC, θF) is compared with archived breaks. Each historical break receives a Gaussian weight that decays with distance in angle space. This is a Gaussian KDE-style local weighting scheme. Its bandwidth follows Silverman's rule-of-thumb logic for two dimensions, h = σ̂ · n^(−1/6), recomputed from the chart's own history. Nothing is manually tuned.
Honest sample size. Weighted evidence can look larger than it really is: many tiny weights are not the same as many strong neighbors. GTL therefore uses the Kish effective sample size (Kish, Survey Sampling, 1965),
n_eff = (Σw)² / Σw²
to estimate how much effective evidence the weighted neighborhood actually contains.
Probability with humility. The weighted up/down vote is passed through a Beta(1,1) posterior, using n_eff as the effective evidence scale. The label only speaks when the posterior mean clears a one-sided 95% normal-approximation check against the 50/50 baseline. When that threshold is not met, the label does not force a call; it simply says the structure is too close to call.
Verification. The principle that probability forecasts must be scored against what actually happened goes back to Brier's 1950 paper in Monthly Weather Review, "Verification of Forecasts Expressed in Terms of Probability." In GTL, every estimate is graded when the break reveals the outcome.
Online calibration. Graded outcomes update fading-factor prequential counters, following the stream-learning evaluation framework of Gama, Sebastião and Rodrigues (Machine Learning, 2013). Fresh evidence receives more weight, while older evidence decays with λ = 0.999. The display can therefore show both the raw estimate and how estimates of the same kind have behaved on the current chart.
Stability. GTL also tracks estimate "jumpiness": the population standard deviation of the last five probability readings. The term and the general idea come from ensemble-forecast consistency research, especially Zsóter, Buizza and Richardson (Monthly Weather Review, 2009). GTL uses a chart-specific adaptation of that idea: a steady estimate and a choppy estimate are labeled differently, because a choppy estimate may still flip.
Nothing in this chain is exotic, and none of it is a performance guarantee. The original part is where the chain is pointed: at frozen structural geometry, measured inside a dimensionless coordinate space.
█ WHAT YOU SEE ON THE CHART
Frozen anchors. Two dashed horizontal lines mark the frozen HH and LL of the current structure, each with its exact level, and a dotted vertical line marks the anchor bar in the past where the freeze happened. These lines do not trail price — that is the whole point.
Geometric trend lines. Two solid lines run from the anchors to the live candle: ceiling from HH to the current high, floor from LL to the current low. They are the triangle hypotenuses. When the two lines converge, they stop at their intersection instead of crossing. The live θC and θF values sit as labels at the anchor.
Structure boxes. Every completed structure is archived as a box: one border color for structures that broke up, another for structures that broke down, and a dashed box for the structure still being built. How many past boxes you see is your choice.
Angle map. A table sorts the recent breaks by their break angles — ceiling side and floor side, each with direction and duration. An arrow row shows where the current live reading ranks among them, so you can literally see where "now" sits in the break history. The footer row carries the up/down estimate; once the calibration cell has enough samples, it shows two numbers, raw → calibrated.
Estimate label. A label floats ahead of the last candle and speaks in sentences: which direction the odds favor, what signals of this kind have actually done on this chart (or the estimated odds while calibration is still warming up), whether the signal is steady or choppy, and a living record — how many of the last 20 estimates were right. It only takes a side when the significance check passes; otherwise it says, honestly, that the structure is too close to call.
The pending phase. Between a break and the next freeze, preview anchors appear as dotted gray lines, the table shows an hourglass, and the estimate quietly switches to a second model trained on pending-phase angles to estimate the direction of the NEXT structure's break.
One disclosure that matters: on the live bar, angles and estimates can change until the candle closes. Everything the indicator learns from — and every alert it fires — reads confirmed bars only.
█ UNDER THE CHART — 29 EXPORTED COLUMNS
Everything drawn above is only a rendering. The numbers underneath are all exported to the Data Window, which means TradingView's "Export chart data" hands you a complete CSV audit trail:
Live geometry & estimate, every bar:
Ceiling θ / Floor θ — the two live angles in ICS
Probability UP / Probability DOWN — the per-bar estimate (these two are also plots, so you can build threshold alerts on them directly)
Log Jump Bar — the stability (jumpiness) of the estimate
Log Cell Bar — which calibration cell this bar fell into
Structure snapshot, printed on every break bar:
Str Duration — how many bars the structure lived
Str Frozen HH / Str Frozen LL — the anchor levels
Str Max High / Str Min Low — the extremes reached inside
Str θ Ceil @Max / Str θ Floor @Min — the angles at those extremes
Str Break Dir — +1 up, −1 down
Estimate audit trail, on birth and break events:
Log Event — 1 = birth, 2 = break, 3 = both on one bar
Log θC Birth / Log θF Birth / Log P Birth / Log Sig Birth / Log nEff Birth — the forecast made the moment the structure was born
Log θC Pend / Log θF Pend / Log P Pend / Log Sig Pend / Log nEff Pend — the pending-phase forecast carried into this break
Log Hit Birth / Log Hit Pend — each forecast graded 1 or 0 against the actual break
Log Acc Birth / Log Acc Pend — the running accuracy of each estimate type
This is the same door the development study walked through. Export the CSV from your own chart, open it in a spreadsheet, in Python, or hand it to an AI assistant — and audit every sentence the label has ever told you.
█ SETTINGS THAT STAY OUT OF YOUR WAY
The settings menu is deliberately small: the lookback window, a few visual choices — colors, transparency, border style, table position, label size and offset, how many past boxes to show — and simple on/off toggles. That is the whole surface, because everything statistical is computed live from the chart itself: the KDE bandwidth from Silverman's rule, the effective sample size from Kish's formula, significance from the posterior, the calibrated rate from the fading counters, the pending-phase model switching in and out on its own. There is nothing to tune, and that is by design. The five documented constants from the development study are the only fixed numbers in the machine.
█ ALERTS
Three alerts cover the estimate's life cycle: Signal turns up, Signal turns down, and Signal gets choppy. Each fires once, on entering its state, and reads only confirmed bars — so what fired is what you will still see on the closed candle. For custom thresholds, Probability UP and Probability DOWN are exposed as plots: build Crossing Up or Greater Than alerts on them directly in TradingView's alert dialog, at any level you like, as many as you like. Recommended frequency: Once Per Bar Close.
█ SEVENTEEN LANGUAGES
The angle map, the anchor labels and the estimate label speak 17 languages: English, Türkçe, Deutsch, Italiano, Français, Español, Bahasa Indonesia, Bahasa Melayu, Ελληνικά, Русский, 中文, 日本語, 한국어, हिन्दी, العربية, فارسی and עברית. Right-to-left scripts — Arabic, Persian, Hebrew — mirror the table layout automatically. One honest limitation: input settings and alert messages stay in English, because Pine requires compile-time constant strings there.
█ WHAT THIS IS — AND WHAT IT IS NOT
GTL is a research and structural analysis tool. It measures the geometry of frozen price structures, keeps honest statistics about its own estimates, and shows you both — the raw number and the track record, side by side. It is not a trading system, its estimates are not trade signals, and nothing in this script or this description is financial advice. The calibrated rates describe what has already happened on your chart's own history; they are not a promise about the next bar. On the live candle, readings can change until the close — confirmed statistics and learning update on closed bars only.
Read it the way it was built to be read: as an instrument standing on the shore, measuring the storm. 지표

Strong Geometric Patterns Engine | ProjectSyndicateStrong Geometric Patterns Engine automatically detects, validates, and grades nine classic chart patterns using an objective, non-repainting geometry engine. It confirms every signal on a breakout close, projects adaptive measured-move take-profit and structural stop-loss levels scaled to Average Daily Range (ADR), scores each setup 0–10 for quality, and presents a full statistical breakdown on a non-intrusive dashboard to provide a quantifiable edge.
🧠 9-Pattern Geometric Detection — identifies Head & Shoulders, Inverse Head & Shoulders, Double Top, Double Bottom, Ascending / Descending / Symmetrical Triangles, and Rising / Falling Wedges from a non-repainting confirmed-pivot engine, so signals are stable and never redraawn after the fact.
🔒 Breakout-Confirmed, Non-Repainting — a valid shape only sets a pending setup; the signal fires exclusively when price closes through the pattern's trigger level, eliminating the subjective, repainting behaviour of standard ZigZag and pattern tools.
🎯 ADR-Adaptive Measured-Move TP/SL — TP1, TP2, and SL are derived from the pattern's own projected height (a true measured move), bounded by a percentage of the 10-day ADR, so risk and targets adapt automatically to any asset's volatility instead of using fixed points.
⭐ 0–10 Quality Scoring — every setup is graded on symmetry, convergence, and a volume confirmation bump, displayed as a star rating next to each signal so you can instantly gauge setup strength and filter for the best ones.
🎨 Direction-Matched Visuals — clean upward/downward entry markers, green bullish and red bearish labels, and crisp horizontal SL / TP1 / TP2 levels give instant visual confirmation of trade direction with no chart clutter.
📊 Full Performance Dashboard — a complete statistical overview including the real-time ADR10 value, the active/pending setup with its targets, total signals, TP1/TP2 win rates, a per-pattern breakdown across all nine pattern types, and a log of the most recent trade outcomes.
✅ Advanced Quality-Control Filters — user-configurable Pivot Length, equality/slope/convergence tolerances, min & max pattern span, measured-move bounds, and minimum bars between signals eliminate low-quality or oversized patterns and prevent over-signaling.
🔔 Comprehensive Alerts — get alerted the moment a new pattern is detected (pending), when price is approaching the trigger, when a setup confirms on the breakout, or only on strong high-score patterns. Available as a single rich alert() message (symbol, timeframe, trigger, invalidation, entry, SL, TP1, TP2, quality) for automation, plus six individually selectable named alert conditions.
🔧 Fully Customizable — control everything from pivot length and pattern-quality tolerances to colors, level extension, persistent historic levels & labels, adjustable signal label size, and dashboard text size.
🎯 Why this algo is unique: Standard pattern indicators repaint and offer subjective signals with no statistical backing. This is an objective, fully-gated, non-repainting engine that doesn't just draw a pattern — it recognizes nine of them from raw geometry, confirms them on a breakout, builds a complete adaptive risk framework (measured-move, ADR-bounded zones) around each one, grades its quality, and proves its historical performance on the very chart you're trading.
🚀 Apply to Gold (XAUUSD), Forex, Crypto, and Indices on any M5/M10/M15/M30/H1. The ADR-based, self-scaling geometry and extensive quality filters let it adapt to anything from M5 scalping to H4 swing trading.
🎯 How to use this? Use the dashboard to understand how each pattern type has recently performed on the current asset and timeframe. Favour higher-quality (higher-star) setups and those aligned with the higher-timeframe trend. Tune the pattern tolerances and measured-move multipliers to match your own risk tolerance and the asset's character.
⚠️ IMPORTANT NOTICE: This indicator is designed to identify statistically-backed pattern signals. It should NOT be used as a standalone signal for entering trades. Always use it in conjunction with your own trading strategy, price action analysis, and other technical indicators to confirm setups and manage risk. 지표

Gann Fan v15 [Phases + Signals]Gann Fan v15 is a strategy inspired by the classic Gann Fan and Gann Angles methodology attributed to W.D. Gann. Gann’s original approach studied the relationship between price, time, geometry, and market angles to identify trend strength, diagonal support and resistance, and potential changes in market behavior.
Credit:
The base concept of the fan angles comes from the Gann Fan / Gann Angles method attributed to W.D. Gann. This script does not claim to reproduce Gann’s original work exactly. It is an independent strategy built around that historical concept, with additional logic for phase detection, signal confirmation, visual analysis, and risk management.
What makes this strategy different:
This script is not only a traditional Gann Fan drawing tool. A classic Gann Fan usually plots diagonal angle levels from a selected high or low. This strategy adds a complete decision framework on top of the Gann Fan concept.
The main differences are:
1. Automatic pivot detection
The script automatically detects recent pivot highs and pivot lows instead of requiring the user to manually anchor the fan.
2. ATR-normalized angle calculation
Instead of using only fixed visual chart angles, the script calculates movement angles using ATR normalization. This helps adapt the angle reading to the volatility of the current symbol.
3. Market phase classification
The script classifies the market into four phases based on the calculated angle:
ACCUM: weak angle or low momentum.
MODER: moderate directional movement.
EXPAN: stronger directional expansion.
ACCEL: extreme acceleration.
4. Visual phase background
The chart background changes according to the detected phase and direction. This helps the user quickly identify whether the market is in accumulation, moderate movement, expansion, or acceleration.
5. LONG and SHORT signal logic
The strategy generates LONG and SHORT signals using Gann-inspired angle behavior, swing direction, EMA confirmation, and candle confirmation depending on the selected entry mode.
6. Multiple entry modes
The user can choose between three signal modes:
Strict, Medium, and Easy.
Each mode changes how much confirmation is required before a signal appears.
7. Built-in risk management
The strategy includes configurable Stop Loss, Take Profit, optional Trailing Stop, and visual TP/SL guide lines.
8. Dashboard
A table shows the current swing direction, live angle, current phase, bullish fan angle, bearish fan angle, active mode, and phase thresholds.
How the strategy enters LONG:
A LONG signal appears when the market structure is bullish and the selected entry mode confirms that the bullish movement has enough strength.
Mode 1 - Strict:
A LONG entry requires the market phase to transition from ACCUM or MODER into EXPAN or ACCEL. The swing must be bullish, EMA 8 must be above EMA 21, and the candle must close bullish.
Mode 2 - Medium:
A LONG entry can appear when the current phase is MODER, EXPAN, or ACCEL. The swing must be bullish, EMA 8 must be above EMA 21, and the candle must close bullish.
Mode 3 - Easy:
A LONG entry can appear when the current angle is above the weak angle threshold, the swing is bullish, price closes above EMA 8, and the candle is bullish.
How the strategy enters SHORT:
A SHORT signal appears when the market structure is bearish and the selected entry mode confirms that the bearish movement has enough strength.
Mode 1 - Strict:
A SHORT entry requires the market phase to transition from ACCUM or MODER into EXPAN or ACCEL. The swing must be bearish, EMA 8 must be below EMA 21, and the candle must close bearish.
Mode 2 - Medium:
A SHORT entry can appear when the current phase is MODER, EXPAN, or ACCEL. The swing must be bearish, EMA 8 must be below EMA 21, and the candle must close bearish.
Mode 3 - Easy:
A SHORT entry can appear when the current angle is above the weak angle threshold, the swing is bearish, price closes below EMA 8, and the candle is bearish.
Risk management:
The strategy includes a configurable Stop Loss percentage and Take Profit percentage.
When Trailing Stop is enabled, the Take Profit level is used as the trail activation price.
The strategy also includes an optional open-profit protection feature that can close the position after a minimum open profit condition is reached.
TP and SL levels are displayed on the chart while a position is active.
Visual elements:
Dynamic bullish and bearish Gann Fan levels.
Phase-colored background.
EMA 8 and EMA 21.
LONG and SHORT labels.
Live angle label.
Dashboard with current market state.
TP and SL lines.
Important usage notes:
Gann Fan and angle-based analysis can be sensitive to chart scaling, timeframe, volatility, and market conditions.
This strategy should be tested on each symbol and timeframe before use.
The default parameters are only a starting point.
Users should adjust the angle thresholds, pivot periods, Stop Loss, Take Profit, and Trailing Stop according to their own testing.
Disclaimer:
This script is for educational and analytical purposes only.
It does not provide financial advice.
It does not guarantee profits.
Past performance does not guarantee future results.
Always use proper risk management. 전략

Geometric Bias Oscillator [LuxAlgo]The Geometric Bias Oscillator indicator provides a normalized measure of market structure by comparing the cumulative magnitude of bullish and bearish segments derived from a simplified price path. It utilizes the Ramer-Douglas-Peucker (RDP) algorithm to filter out market noise, allowing traders to identify the underlying structural bias within a specific lookback window.
🔶 USAGE
The indicator oscillates between -100 and 100, where positive values indicate a dominant bullish structure and negative values indicate a dominant bearish structure. Unlike traditional oscillators that rely on raw price changes or moving averages, this tool focuses on the "weight" of simplified structural movements.
Traders can use the oscillator to:
Identify the prevailing trend bias based on structural significance rather than just closing prices.
Spot potential reversals when the oscillator crosses the zero line, signaling a shift in structural dominance.
Assess the strength of a trend; values near 100 or -100 suggest a highly directional market with very little structural retracement.
🔹 Visual Interpretation
The indicator features a dynamic gradient fill to provide better visual context. When the oscillator is above zero, a green gradient appears, with higher values showing increased intensity. Conversely, when below zero, a red gradient indicates bearish structural dominance. A hidden zero line serves as the central axis for these transitions.
🔶 DETAILS
The Geometric Bias Oscillator employs several advanced geometric concepts to determine market bias.
🔹 Ramer-Douglas-Peucker (RDP) Algorithm
The core of the calculation is the RDP algorithm, a line-simplification technique. It takes the price action over the defined "Window Size" and reduces it to a series of essential points. By eliminating minor price fluctuations (noise) that fall below a specific distance threshold, the algorithm reveals the primary "skeleton" of the market structure.
🔹 Coordinate Normalization
To ensure the simplification is consistent across different assets and volatility regimes, the script normalizes price coordinates using the Average True Range (ATR). Price values are divided by the ATR before the RDP distance calculations are performed. This ensures that the "ATR Multiplier" setting remains meaningful regardless of whether the asset is highly volatile or stable.
🔹 Structural Magnitude Calculation
Once the simplified structure is established, the script calculates the vertical distance (magnitude) of every segment in the path. These segments are categorized into bullish (upward) and bearish (downward) moves. The final oscillator value represents the percentage difference between the total bullish magnitude and the total bearish magnitude relative to the total structural movement.
🔶 SETTINGS
Window Size : The number of recent bars used to construct the structural path for the RDP algorithm.
ATR Multiplier : The sensitivity threshold for simplification. Higher values result in a more aggressive simplification, keeping only the most significant structural pivots.
ATR Length : The period used to calculate the ATR for price normalization.
Smoothing : Applies a Simple Moving Average to the final oscillator values to reduce jaggedness in the output.
Bullish Color : The color used for the oscillator and gradient when structural bias is positive.
Bearish Color : The color used for the oscillator and gradient when structural bias is negative.
지표

3D Cube Projection - √3 Diagonal3D Cube Projection - √3 Diagonal
OVERVIEW
This indicator implements Bradley F. Cowan's cube projection methodology from his "Four Dimensional Stock Market Structures & Cycles" work. It visualizes a 3D cube projected onto the 2D price-time chart, using the √3 (square root of 3) body diagonal as the primary analytical tool for identifying market structure and potential cycle termination points.
METHODOLOGY
The cube is constructed by selecting two pivot points (A and E) which form the body diagonal - the longest diagonal running through the cube's interior from one corner to the diagonally opposite corner. According to Cowan's geometric approach:
- Point A = Starting pivot (low or high)
- Point E = Ending pivot (opposite extreme)
- Body Diagonal (A→E) = √3 × cube side length
- Face Diagonal (A→C) = √2 × cube side length
The script calculates the cube dimensions by:
1. Measuring the total price range from A to E
2. Dividing by √3 to determine the cube side length in price
3. Distributing the time component across three equal segments
4. Projecting the 3D structure onto the 2D chart plane
FEATURES
✓ Interactive date selection for points A and E
✓ Automatic UPLEG/DOWNLEG detection
✓ All 8 cube vertices labeled (A-H)
✓ All 6 cube faces with independent color/opacity controls
✓ √3 body diagonal (red line by default)
✓ √2 face diagonal (orange line by default)
✓ Customizable cube lines, fills, and labels
✓ Information table showing key measurements
VISUAL CUSTOMIZATION
- Front & Back faces: Box fills for the two square faces
- Side faces: Left and right vertical faces
- Top & Bottom faces: Horizontal connecting faces
- Each group has independent color and opacity settings
- Label size and transparency fully adjustable
- Cube line styles (solid, dashed, dotted) for depth perception
IMPORTANT LIMITATIONS & DISCLOSURES
This indicator works within the inherent constraints of projecting 3D geometry onto a 2D price-time chart:
⚠️ VISUAL APPROXIMATION: This is a visual projection tool, not a mathematically perfect 3D cube. True 3D geometry cannot be accurately represented on a 2D plane without distortion.
⚠️ TIME DISTRIBUTION: The script divides the time axis into three equal segments (total bars ÷ 3) for practical visualization. This is an approximation that prioritizes visual coherence over strict geometric accuracy.
⚠️ UNIT SCALING: Price and time use different units (dollars vs. bars), making true isometric projection impossible. The cube appears proportional on screen but the dimensions are not directly comparable.
⚠️ 2D CONSTRAINT: We only have X (time) and Y (price) axes available. The Z-axis (depth) is simulated through visual projection techniques (line styles, shading).
INTENDED USE
This tool is designed for traders and analysts who study Bradley Cowan's geometric market analysis methods. It helps visualize:
- Market structure in geometric terms
- Potential support/resistance zones at cube edges
- Cycle timing relationships using √2 and √3 ratios
- Harmonic price-time relationships
The cube projection should be used as one component of a comprehensive analysis approach, combined with other technical tools and fundamental analysis.
MATHEMATICAL FOUNDATION
While the visual representation involves approximations, the core √3 relationship is mathematically sound:
- For any cube, the body diagonal = √3 × side length
- The face diagonal = √2 × side length
- These ratios are preserved in the price dimension calculations
HOW TO USE
1. Select your starting date (Point A) - typically a significant low or high
2. Select your ending date (Point E) - the opposite extreme pivot
3. The indicator automatically constructs the cube geometry
4. Analyze the cube edges, diagonals, and faces for market structure insights
5. Adjust colors and opacity to suit your chart aesthetic
TECHNICAL NOTES
- Works on all timeframes and instruments
- Best viewed on charts with sufficient historical data
- Cube updates in real-time as new bars form
- Range selection is marked with vertical lines and shading
- Calculator table shows Point A, Point E, side length, and bar measurements
ACKNOWLEDGMENT
This indicator is based on the geometric market analysis principles developed by Bradley F. Cowan. Users are encouraged to study Cowan's original works for deeper understanding of the theoretical framework.
DISCLAIMER
This indicator is for educational and analytical purposes only. It does not constitute financial advice. Past performance does not guarantee future results. Always conduct your own research and risk management before making trading decisions.
지표

Geometric Price-Time Triangle Calculator═══════════════════════════════════════════════════
GEOMETRIC PRICE-TIME TRIANGLE CALCULATOR
═══════════════════════════════════════════════════
Calculates Point C of a geometric triangle using different rotation angles from any selected price swing. Based on Bradley F. Cowan's Price-Time Vector (PTV) methods from "Four-Dimensional Stock Market Structures and Cycles."
📐 WHAT IT DOES
────────────────────────────────────────────────────
Select two points (A and B) on any swing, choose an angle, and the indicator calculates where Point C would be mathematically. It's just vector rotation applied to price charts.
This shows you where Point C lands in both price AND time based on pure geometry - not a prediction, just a calculation.
🎯 FEATURES
────────────────────────────────────────────────────
✓ 10 Different Angles
• Gann ratios: 18.435° (1x3), 26.565° (1x2), 45° (1x1), 63.435° (2x1), 71.565° (3x1)
• Other angles: 30°, 60°, 90°, 120°, 150°
✓ Visual Triangle
• Adjustable colors and opacity for points A, B, C
• Line styles: Solid, Dashed, Dotted
• Extend lines: None, Left, Right, Both
✓ Crosshair at Point C
• Shows where Point C is located
• Vertical line = bar position
• Horizontal line = price level
✓ Data Table
• Shows all calculations
• Price-to-Bar ratio
• Point C location (price and bars from A/B)
• Toggle on/off
🔧 HOW TO USE
────────────────────────────────────────────────────
1. Pick your swing start date (Point A)
2. Pick your swing end date (Point B) - make sure these dates capture the actual high/low of your swing
3. Choose an angle from the dropdown
4. Look at Point C - that's where the geometry puts it
Different angles = different Point C locations. Whether price actually goes there is up to the market.
📊 THE ANGLES
────────────────────────────────────────────────────
- 18.435° (1x3) - Shallow rotation
- 26.565° (1x2) - Moderate rotation
- 45° (1x1) - Gann's balanced ratio
- 60° - Equilateral triangle (default)
- 63.435° (2x1) - Steeper rotation
- 71.565° (3x1) - Very steep rotation
- 90° - Right angle
- 120°-150° - Obtuse angles
💡 PRACTICAL USE
────────────────────────────────────────────────────
→ See where geometric patterns would complete
→ Test if your market respects certain angles
→ Find where multiple angles converge
→ Compare projected Point C to actual price action
→ Use 90° to see symmetrical price/time relationships
→ Backtest historical swings to see what worked
⚙️ HOW IT WORKS
────────────────────────────────────────────────────
1. Takes your AB swing
2. Calculates the BA vector (reverse direction)
3. Normalizes price and time using Price-to-Bar ratio
4. Rotates the vector by your selected angle
5. Converts back to chart coordinates
Basic trigonometry. That's all it is.
📚 BACKGROUND
────────────────────────────────────────────────────
Based on Bradley F. Cowan's Price-Time Vector (PTV) concept from "Four-Dimensional Stock Market Structures and Cycles" and W.D. Gann's geometric angle analysis. Cowan observed that markets sometimes complete geometric patterns. This tool calculates where those patterns would complete mathematically. Whether price actually respects these geometric relationships is something you need to test yourself.
⚠️ IMPORTANT
────────────────────────────────────────────────────
- This is geometric calculation, not prediction
- Point C shows where the math puts it, not where price will go
- Some angles might work for your market, some won't
- Test it yourself on historical data
- Price-to-Bar Ratio stays constant regardless of angle
- Don't trade based on this alone
- Works on all timeframes and assets
🎨 CUSTOMIZATION
────────────────────────────────────────────────────
- Show/hide triangle
- Individual colors for A, B, C points
- Adjust opacity (0-100)
- Line styles for each triangle side
- Extend lines left/right/both/none
- Show/hide data table
- Crosshair color and width
- Customizable table colors
═══════════════════════════════════════════════════
지표

지표

Itakura-Saito Autoregressive Extrapolation of Price [Loxx]Itakura-Saito Autoregressive Extrapolation of Price is an indicator that uses an autoregressive analysis to predict future prices. This is a linear technique that was originally derived or speech analysis algorithms.
What is Itakura-Saito Autoregressive Analysis?
The technique of linear prediction has been available for speech analysis since the late 1960s (Itakura & Saito, 1973a, 1970; Atal & Hanauer, 1971), although the basic principles were established long before this by Wiener (1947). Linear predictive coding, which is also known as autoregressive analysis, is a time-series algorithm that has applications in many fields other than speech analysis (see, e.g., Chatfield, 1989).
Itakura and Saito developed a formulation for linear prediction analysis using a lattice form for the inverse filter. The Itakura–Saito distance (or Itakura–Saito divergence) is a measure of the difference between an original spectrum and an approximation of that spectrum. Although it is not a perceptual measure it is intended to reflect perceptual (dis)similarity. It was proposed by Fumitada Itakura and Shuzo Saito in the 1960s while they were with NTT. The distance is defined as: The Itakura–Saito distance is a Bregman divergence, but is not a true metric since it is not symmetric and it does not fulfil triangle inequality.
read more: Selected Methods for Improving Synthesis Speech Quality Using Linear Predictive Coding: System Description, Coefficient Smoothing and Streak
Data inputs
Source Settings: -Loxx's Expanded Source Types. You typically use "open" since open has already closed on the current active bar
LastBar - bar where to start the prediction
PastBars - how many bars back to model
LPOrder - order of linear prediction model; 0 to 1
FutBars - how many bars you want to forward predict
Things to know
Normally, a simple moving average is calculated on source data. I've expanded this to 38 different averaging methods using Loxx's Moving Avreages.
This indicator repaints
Related Indicators (linear extrapolation of price)
Levinson-Durbin Autocorrelation Extrapolation of Price
Weighted Burg AR Spectral Estimate Extrapolation of Price
Helme-Nikias Weighted Burg AR-SE Extra. of Price
지표

Using The AM/GM Inequality To Estimate VolatilityA volatility indicator derived from the AM/GM inequality. I don't think it will be necessary to describe the usage and interpretation of such indicator, and I don't think it is super useful, however, this is not the case of the script, which contains three ways to compute the geometric mean, with a classic, a simple, and an efficient way. The AM/GM inequality is also a really interesting concept, and I'll try to"prove" it in this post by using DSP. I also added more comments in the script in order to highlight some stuff.
The AM/GM Inequality
When we talk about the mean, we are referring to the "arithmetic" one by default, but there exist more types of means. Two other ones include the "geometric" and "harmonic" means, both are part of the Pythagorean means with the arithmetic mean.
Each one of them as several properties, but the most interesting aspect is their inequality, that is:
HM <= GM <= AM
The arithmetic mean is the one with the highest value, while the harmonic mean is the one with the lowest value. In the case each data point is equal to each other, all the means have the same value.
In our case, the inequality of interest is the inequality between the geometric and arithmetic mean, where the geometric mean is lower or equal than the arithmetic one. Many proofs/explanations exist, I'll try my version using DSP, where instead of thinking about means, we think about rolling means, which allows us to interpret them as low-pass filters. So we end up having the geometric moving average (GMA) and arithmetic moving average (SMA).
We know that GMA <= SMA , the SMA has a unity passband, this implies that the GMA has a passband lower than 1 (for non-equal input values), this explains why the GMA is smaller than the SMA. In order for a FIR filter to have a passband lower than 1, the sum of the filter coefficients must be lower than 1. In order to further proves this consider the following equation:
sqrt(a×b) = k×a + k×b
Here sqrt(a×b) is the geometric mean of a and b , the right-hand side of the equation is a weighted sum between a and b and coefficient k , we want to solve the equation with respect to k , if k×2 < 1 then we have the proof that GMA < SMA . The solution with respect to k is:
k = sqrt(a×b)/(a+b)
which always gives a number lower than 0.5, as such k×2 < 1 and thus the passband is lower than 1. If our input values are equal to each other, we end up with the following solution for k :
k = sqrt(a×a)/(a+a) = a/(2×a) = 0.5
as such the GMA has the coefficients of an SMA as long as the input values are equal to each other.
Because of this inequality, we can subtract the SMA to a GMA and take the square root of the result in order to have a volatility indicator, however, both moving averages are still pretty close to each other, which gives a very small result for the indicator.
Uwu I am a bit tired, better indicators coming up
지표

지표

Spread by//Every spread & central tendency measure in 1 script with comfortable visualization, including scrips's status line.
Spread measures:
- Standard deviation (for most cases);
- Average deviation (if there are extreme values);
- GstDev - Geometric Standard Deviation (exclusively for Geometric Mean);
- HstDev - Harmonic Deviation (exclusively for Harmonic Mean).
These modified functions will calculate everything right, they will take source, length, AND basis of your choice, unlike the ones from TW.
Central tendency measures:
- Mean (if everything's cool & equal);
- Median (values clustering towards low/high part of the rolling window);
- Trimean (3/more distinguishable clusters of data);
- Midhinhe (2 distinguishable clusters of data);
- Geometric Mean ( |low.. ... ... .. .... ... . . . . . . . . . . . .high| this kinda data); <- Exp law
- Harmonic Mean { |low. . . . . . . . . . . . . . .. . . .high| kinda data). <- Reciprocal law
Listen:
1) Don't hesitate using Standard Deviation with non-mean, like "Midhinge Standard Devition", despite what ol' stats gurus gonna say, it works when it's appropriate;
2) Don't check log space while using Geometric Mean & Geometric Standard Deviation, these 2 implement log stuff by design, I mean unless u wanna make it double xd
3) You can use this script, modify it how you want, ask me questions whatever, just make money using it;
4) Use Midrange & Midpoints in tandem when data follows ~addition law (like this . . . . . . . . . . . . . . . . . . . . .). <- just addition law
Look at the data, choose spread measure first, then choose central tendency measure, not vice versa.
!!!
Ain't gonna place ® sign on standard deviations like one B guy did in 1980s lmao, but if your wanna use Harmonic Deviations in science/write about/cite it/whatever, pls give me a lil credit at least, I've never seen it anywhere and unfortunately had to develop it by myself. it's useful when your data develops by reciprocals law (opposite to exponential).
Peace TW 지표

지표

지표

지표
