SPB Git

spb/hfmarketdata

Public

Open high-frequency market data platform — FirstRate full-history downloader, DuckDB/Parquet lake, open REST API and React docs platform (www.hfmarketdata.io)

docs: encyclopédie des charts — 104 pages MDX générées depuis le catalogue (scripts/charts-docs.mjs : index indicateurs/outils par catégorie avec vignettes, fiche par indicateur et par outil avec figure 960, Open in charts), section Charts, fiches hors nav mais indexées (recherche ⌘K, prérendu, sitemap, og:image par fiche)

Simon-Pierre Boucher committed (Sep 7, 2026) parent a5068ad Browse files

115 changed files +7,347 −13

115 changed files
added hfmarketdata/web/content/guides/charts-ind-ad.mdx +73 −0
@@ -0,0 +1,73 @@
1 +export const meta = { title: 'A/D — Accumulation / Distribution', description: 'Cumulative money-flow volume, each bar weighted by where the close sits in its range.', image: '/charts/thumbs/indicator-ad-dark-lg.png' }
2 +
3 +# Accumulation / Distribution
4 +
5 +<p className="lead">Cumulative money-flow volume, each bar weighted by where the close sits in its range.</p>
6 +
7 +<ChartFigure kind="indicator" id="ad" caption="A/D with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="ad" aka={["A/D","ADL","Accumulation / Distribution line"]} category="Volume" pane="Own pane under the price" />
10 +
11 +## What it measures
12 +
13 +The Accumulation / Distribution line cumulates the money-flow volume: each bar's volume multiplied by a factor between −1 and +1 that measures where the close landed inside the bar's high–low range. A close at the high counts the whole volume as accumulation, a close at the low as distribution, a mid-range close as neutral.
14 +
15 +## Formula
16 +
17 +```text
18 +CLV = ((C − L) − (H − C)) / (H − L) (0 when H = L)
19 +MFV = CLV × V
20 +A/D = A/D₁ + MFV
21 +```
22 +
23 +| Symbol | Meaning |
24 +| --- | --- |
25 +| `H, L, C` | high, low, close of the bar |
26 +| `V` | volume |
27 +| `CLV` | close location value, −1…+1 |
28 +| `A/D₁` | previous value of the line |
29 +
30 +## How to read it
31 +
32 +- A rising A/D line confirms an uptrend; a falling line under a rising price is distribution — the classic warning before a top.
33 +- Bullish divergence: price sets a lower low while A/D holds a higher low.
34 +- Unlike OBV, a strong reversal bar (close near the high after a gap down) adds to the line — it rewards intrabar strength, not just the close direction.
35 +- Read it with trend lines and breakouts like a price series; only the slope matters, not the level.
36 +
37 +## Default settings
38 +
39 +This indicator has no inputs — there is nothing to tune.
40 +
41 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
42 +
43 +## Best for
44 +
45 +| | |
46 +| --- | --- |
47 +| **Timeframes** | Daily and weekly bars; 1-hour bars on liquid stocks. |
48 +| **Markets** | Stocks, ETFs and futures with genuine volume. |
49 +| **Note** | Chaikin later smoothed this line into the Chaikin Oscillator and Chaikin Money Flow. |
50 +
51 +## Pairs well with
52 +
53 +- [On-Balance Volume](/docs/charts/indicators/obv) — Running total of volume signed by the close direction; should confirm price trends.
54 +- [Chaikin Money Flow](/docs/charts/indicators/cmf) — Money-flow volume over total volume for n bars, −1…+1: buying or selling pressure.
55 +- [Chaikin Oscillator](/docs/charts/indicators/chaikin-osc) — MACD of the Accumulation / Distribution line: fast EMA minus slow EMA of money flow.
56 +- [Money Flow Index](/docs/charts/indicators/mfi) — Volume-weighted RSI 0–100: above 80 overbought, below 20 oversold, divergences matter.
57 +
58 +## Pitfalls
59 +
60 +- It ignores gaps: a stock that gaps down 5 % and closes mid-range adds nothing negative to the line.
61 +- A bar with H = L contributes zero regardless of its volume.
62 +- Extreme-volume events (rebalancing, earnings) permanently shift the line.
63 +
64 +## History
65 +
66 +Marc Chaikin, early 1980s, building on Larry Williams's accumulation / distribution concept.
67 +
68 +## See also
69 +
70 +- [Chaikin Money Flow](/docs/charts/indicators/cmf)
71 +- [Chaikin Oscillator](/docs/charts/indicators/chaikin-osc)
72 +- [On-Balance Volume](/docs/charts/indicators/obv)
73 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-adx.mdx +76 −0
@@ -0,0 +1,76 @@
1 +export const meta = { title: 'ADX — Average Directional Index', description: 'Trend strength 0–100 regardless of direction, with +DI / −DI showing who leads.', image: '/charts/thumbs/indicator-adx-dark-lg.png' }
2 +
3 +# Average Directional Index
4 +
5 +<p className="lead">Trend strength 0–100 regardless of direction, with +DI / −DI showing who leads.</p>
6 +
7 +<ChartFigure kind="indicator" id="adx" caption="ADX 14 with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="adx" aka={["ADX","DMI","Directional Movement"]} category="Trend" pane="Own pane under the price" />
10 +
11 +## What it measures
12 +
13 +ADX smooths the difference between the positive and negative directional indicators (+DI, −DI), which measure how much of the true range was upward or downward movement. The ADX line reads the strength of the trend whatever its direction; the two DI lines tell you whether buyers or sellers own it.
14 +
15 +## Formula
16 +
17 +```text
18 ++DM = H_t − H_{t−1} if > L_{t−1} − L_t and > 0, else 0 (−DM symmetric)
19 ++DI = 100 · RMA(+DM, n) / RMA(TR, n), −DI likewise
20 +DX = 100 · |+DI − −DI| / (+DI + −DI)
21 +ADX = RMA(DX, n)
22 +```
23 +
24 +| Symbol | Meaning |
25 +| --- | --- |
26 +| `n` | Wilder smoothing length (default 14) |
27 +| `RMA` | Wilder's smoothed moving average |
28 +| `TR` | true range |
29 +
30 +## How to read it
31 +
32 +- ADX below 20–25: no trend, range tools apply; above 25: a trend worth following; above 40–50: very strong, often late.
33 +- +DI above −DI = uptrend; −DI above +DI = downtrend. A DI cross while ADX rises from below 20 is a fresh trend.
34 +- A falling ADX from a high level does not mean reversal — it means the trend is losing strength or consolidating.
35 +- ADX turning up from below 20 after a long flat period frequently precedes a breakout.
36 +- Wilder's extreme-point rule: enter on the DI cross only if price then exceeds the extreme of the crossover bar.
37 +
38 +## Default settings
39 +
40 +| Input | Default | Why |
41 +| --- | --- | --- |
42 +| `length` | `14` | Wilder's standard: half of a 28-day cycle on daily bars; because ADX is doubly smoothed, 14 already lags — shorter settings are rarely useful. |
43 +
44 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
45 +
46 +## Best for
47 +
48 +| | |
49 +| --- | --- |
50 +| **Timeframes** | Daily and 4-hour; 1-hour for intraday regime filtering. |
51 +| **Markets** | Every market — it is the standard trend / range filter. |
52 +| **Note** | Use ADX to decide WHICH tools to use (trend or range), not as an entry signal by itself. |
53 +
54 +## Pairs well with
55 +
56 +- [Supertrend](/docs/charts/indicators/supertrend) — ATR-based trailing stop that flips colour with the trend — one line, long or short.
57 +- [Parabolic SAR](/docs/charts/indicators/psar) — Accelerating trailing dots below or above price; a touch flips the trend.
58 +- [Relative Strength Index](/docs/charts/indicators/rsi) — Momentum 0–100: above 70 overbought, below 30 oversold, divergences warn of turns.
59 +- [Simple Moving Average](/docs/charts/indicators/sma) — Arithmetic mean of the last n prices — the baseline trend filter and dynamic support.
60 +
61 +## Pitfalls
62 +
63 +- The double smoothing makes ADX slow: a trend can be half over by the time ADX crosses 25.
64 +- ADX rises in strong downtrends too — always read the DI lines for direction.
65 +- Absolute thresholds vary by instrument; calibrate 20 / 25 against the history you trade.
66 +
67 +## History
68 +
69 +J. Welles Wilder Jr., 1978, New Concepts in Technical Trading Systems.
70 +
71 +## See also
72 +
73 +- [Aroon](/docs/charts/indicators/aroon)
74 +- [Vortex](/docs/charts/indicators/vortex)
75 +- [Parabolic SAR](/docs/charts/indicators/psar)
76 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-alma.mdx +75 −0
@@ -0,0 +1,75 @@
1 +export const meta = { title: 'ALMA — Arnaud Legoux Moving Average', description: 'Gaussian-weighted average with an adjustable offset: tune smoothness against lag.', image: '/charts/thumbs/indicator-alma-dark-lg.png' }
2 +
3 +# Arnaud Legoux Moving Average
4 +
5 +<p className="lead">Gaussian-weighted average with an adjustable offset: tune smoothness against lag.</p>
6 +
7 +<ChartFigure kind="indicator" id="alma" caption="ALMA 9 0.85 6 with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="alma" aka={["ALMA"]} category="Trend" pane="Overlay on the price pane" />
10 +
11 +## What it measures
12 +
13 +ALMA weights the bars of the window with a Gaussian bell whose centre is shifted toward the most recent bars by the offset parameter and whose width is set by sigma. Moving the centre reduces lag; widening the bell increases smoothness — two independent knobs instead of one length.
14 +
15 +## Formula
16 +
17 +```text
18 +m = offset·(n − 1), s = n / sigma
19 +w_i = exp(−(i − m)² / (2·s²)), i = 0 … n−1 (0 = oldest bar)
20 +ALMA_t = Σ w_i·P_{t−(n−1−i)} / Σ w_i
21 +```
22 +
23 +| Symbol | Meaning |
24 +| --- | --- |
25 +| `n` | window length (default 9) |
26 +| `offset` | 0 … 1, where the bell peaks (1 = newest bar) |
27 +| `sigma` | bell width control — larger = narrower bell = more responsive |
28 +| `w_i` | Gaussian weight of bar i |
29 +
30 +## How to read it
31 +
32 +- Use it as a smooth trend line: slope for bias, closes across it for entries and exits.
33 +- With offset 0.85 the line keeps a small lag but filters the single-bar noise that trips shorter EMAs.
34 +- Lower the offset (0.5) for a symmetric filter that is very smooth but lags like an SMA; raise it toward 1 for speed.
35 +- Two ALMAs of different lengths cross cleaner than EMAs because the Gaussian kernel damps oscillation.
36 +
37 +## Default settings
38 +
39 +| Input | Default | Why |
40 +| --- | --- | --- |
41 +| `length` | `9` | Legoux's published default; short enough for swing trading, and the Gaussian weights make it smoother than a 9 EMA. |
42 +| `offset` | `0.85` | Original default: bell centred at 85 % of the window — most weight on recent bars with a little lag traded for smoothness. |
43 +| `sigma` | `6` | Original default; sigma 6 gives a moderately narrow bell. Lower values (2–3) smooth more, higher values (8–10) track price. |
44 +| `source` | `close` | Standard settlement price. |
45 +
46 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
47 +
48 +## Best for
49 +
50 +| | |
51 +| --- | --- |
52 +| **Timeframes** | Intraday to daily. |
53 +| **Markets** | FX and index futures, where it was designed to filter noise. |
54 +
55 +
56 +## Pairs well with
57 +
58 +- [Kaufman Adaptive Moving Average](/docs/charts/indicators/kama) — Speeds up in trends, flattens in noise: the smoothing adapts to the efficiency ratio.
59 +- [Hull Moving Average](/docs/charts/indicators/hma) — Almost lag-free smooth average built from three weighted MAs; hugs the trend.
60 +- [Relative Strength Index](/docs/charts/indicators/rsi) — Momentum 0–100: above 70 overbought, below 30 oversold, divergences warn of turns.
61 +
62 +## Pitfalls
63 +
64 +- Three parameters invite over-fitting — change one at a time.
65 +- Offset near 1 degenerates into a nearly unsmoothed series.
66 +
67 +## History
68 +
69 +Arnaud Legoux and Dimitrios Kouzis-Loukas, 2009.
70 +
71 +## See also
72 +
73 +- [Hull Moving Average](/docs/charts/indicators/hma)
74 +- [Kaufman Adaptive MA](/docs/charts/indicators/kama)
75 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-ao.mdx +72 −0
@@ -0,0 +1,72 @@
1 +export const meta = { title: 'AO — Awesome Oscillator', description: 'SMA 5 minus SMA 34 of the bar midpoint, as a histogram coloured by its own direction.', image: '/charts/thumbs/indicator-ao-dark-lg.png' }
2 +
3 +# Awesome Oscillator
4 +
5 +<p className="lead">SMA 5 minus SMA 34 of the bar midpoint, as a histogram coloured by its own direction.</p>
6 +
7 +<ChartFigure kind="indicator" id="ao" caption="AO 5 34 with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="ao" aka={["AO"]} category="Momentum" pane="Own pane under the price" />
10 +
11 +## What it measures
12 +
13 +The Awesome Oscillator subtracts a 34-bar simple moving average of the bar midpoints from a 5-bar one, so it compares recent driving force to the longer-term one. It is drawn as a histogram whose bars are green when the value rises from the previous bar and red when it falls — the colour, not the sign, carries the first-level signal.
14 +
15 +## Formula
16 +
17 +```text
18 +mid = (high + low) / 2
19 +AO = SMA(mid, fast) − SMA(mid, slow)
20 +```
21 +
22 +| Symbol | Meaning |
23 +| --- | --- |
24 +| `fast` | short SMA length (default 5) |
25 +| `slow` | long SMA length (default 34) |
26 +| `bar colour` | green when AO &gt; previous AO, red when AO &lt; previous AO |
27 +
28 +## How to read it
29 +
30 +- Zero-line cross: AO turning positive is a bullish momentum shift, negative is bearish.
31 +- Saucer: three bars above zero, the first two falling (red) and the third rising (green) — a buy in the direction of the trend; the mirror below zero is a sell.
32 +- Twin peaks: two troughs below zero where the second is shallower and followed by a green bar signals a bullish reversal; two peaks above zero, the second lower, signal a bearish one.
33 +- Bar colour flipping without a zero cross is a pullback inside the trend, not a reversal.
34 +
35 +## Default settings
36 +
37 +| Input | Default | Why |
38 +| --- | --- | --- |
39 +| `fast` | `5` | Bill Williams' fast average — one trading week of daily bars. |
40 +| `slow` | `34` | A Fibonacci number roughly equal to seven trading weeks; Williams chose 5 / 34 for all the Profitunity tools. |
41 +
42 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
43 +
44 +## Best for
45 +
46 +| | |
47 +| --- | --- |
48 +| **Timeframes** | Daily and 4-hour bars; the 5 / 34 pair is calibrated for swing trading. |
49 +| **Markets** | Futures, FX and indices — anything that trends in waves. |
50 +| **Note** | Part of Williams' Profitunity method together with the Alligator and Fractals. |
51 +
52 +## Pairs well with
53 +
54 +- [Moving Average Convergence Divergence](/docs/charts/indicators/macd) — Fast EMA minus slow EMA, a signal EMA and the histogram between them; zero line = trend.
55 +- [Exponential Moving Average](/docs/charts/indicators/ema) — Recency-weighted average that reacts faster than the SMA with less drop-off jitter.
56 +- [Elder Ray](/docs/charts/indicators/elder-ray) — Bull power (high − EMA 13) and bear power (low − EMA 13) as two histograms around zero.
57 +
58 +## Pitfalls
59 +
60 +- The saucer and twin-peak patterns need exact bar counts; eyeballing them produces many false setups.
61 +- Two SMAs lag: the zero cross confirms a move that is often half done.
62 +- On low-volatility bars the histogram flattens and colour flips constantly.
63 +
64 +## History
65 +
66 +Bill Williams, 1995, in Trading Chaos.
67 +
68 +## See also
69 +
70 +- [MACD](/docs/charts/indicators/macd)
71 +- [Elder Ray](/docs/charts/indicators/elder-ray)
72 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-aroon.mdx +69 −0
@@ -0,0 +1,69 @@
1 +export const meta = { title: 'Aroon Up / Down — Aroon', description: 'How recently the n-bar high and low were made, 0–100: fresh highs = Aroon Up near 100.', image: '/charts/thumbs/indicator-aroon-dark-lg.png' }
2 +
3 +# Aroon
4 +
5 +<p className="lead">How recently the n-bar high and low were made, 0–100: fresh highs = Aroon Up near 100.</p>
6 +
7 +<ChartFigure kind="indicator" id="aroon" caption="Aroon 14 with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="aroon" aka={["Aroon Up / Down","Aroon indicator"]} category="Trend" pane="Own pane under the price" />
10 +
11 +## What it measures
12 +
13 +Aroon Up counts how many bars have passed since the highest high of the window and Aroon Down since the lowest low, both scaled so that a fresh extreme scores 100 and an extreme at the far edge of the window scores 0. It measures the age of the trend rather than its size, which makes it good at spotting trends before they show up in moving averages.
14 +
15 +## Formula
16 +
17 +```text
18 +AroonUp = 100 · (n − barsSinceHighestHigh(n)) / n
19 +AroonDown = 100 · (n − barsSinceLowestLow(n)) / n
20 +```
21 +
22 +| Symbol | Meaning |
23 +| --- | --- |
24 +| `n` | lookback length (default 14) |
25 +| `barsSince…` | age in bars of the extreme within the last n + 1 bars |
26 +
27 +## How to read it
28 +
29 +- Aroon Up above 70 with Aroon Down below 30 = established uptrend; the mirror = downtrend.
30 +- Aroon Up crossing above Aroon Down is an early trend-change signal; the cross above 50 confirms.
31 +- Both lines below 50 for a while: the market is consolidating, no recent extreme on either side.
32 +- Parallel movement of both lines near the middle means indecision — a breakout is brewing.
33 +
34 +## Default settings
35 +
36 +| Input | Default | Why |
37 +| --- | --- | --- |
38 +| `length` | `14` | Chande's original: 14 bars balance sensitivity and stability on daily charts; 25 is common for a smoother read. |
39 +
40 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
41 +
42 +## Best for
43 +
44 +| | |
45 +| --- | --- |
46 +| **Timeframes** | Daily and weekly; also 1-hour for intraday trend tracking. |
47 +| **Markets** | Stocks and futures where trends alternate with consolidations. |
48 +
49 +
50 +## Pairs well with
51 +
52 +- [Average Directional Index](/docs/charts/indicators/adx) — Trend strength 0–100 regardless of direction, with +DI / −DI showing who leads.
53 +- [Vortex Indicator](/docs/charts/indicators/vortex) — Two lines from bar-to-bar range overlap: VI+ over VI− = uptrend, the cross is the signal.
54 +- [Donchian Channels](/docs/charts/indicators/donchian) — Highest high and lowest low of the last n bars: the breakout channel of trend followers.
55 +
56 +## Pitfalls
57 +
58 +- The lines move in steps of 100/n and jump as an extreme drops out of the window — jerky by nature.
59 +- It says nothing about the size of the move: a fresh high by one tick scores 100.
60 +
61 +## History
62 +
63 +Tushar Chande, September 1995, Technical Analysis of Stocks & Commodities ("Aroon" is Sanskrit for dawn's early light).
64 +
65 +## See also
66 +
67 +- [ADX](/docs/charts/indicators/adx)
68 +- [Donchian Channels](/docs/charts/indicators/donchian)
69 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-atr.mdx +75 −0
@@ -0,0 +1,75 @@
1 +export const meta = { title: 'ATR — Average True Range', description: 'Typical bar-to-bar movement in price units — the standard yardstick for stops and size.', image: '/charts/thumbs/indicator-atr-dark-lg.png' }
2 +
3 +# Average True Range
4 +
5 +<p className="lead">Typical bar-to-bar movement in price units — the standard yardstick for stops and size.</p>
6 +
7 +<ChartFigure kind="indicator" id="atr" caption="ATR 14 with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="atr" aka={["ATR"]} category="Volatility" pane="Own pane under the price" />
10 +
11 +## What it measures
12 +
13 +The ATR averages the true range — the bar's range extended to the previous close so gaps count — over n bars with Wilder's smoothing. It measures how much the instrument moves per bar in price units, which makes it the natural unit for stop distances, targets and position sizing across very different markets.
14 +
15 +## Formula
16 +
17 +```text
18 +TR = max(H − L, |H − C₁|, |L − C₁|)
19 +ATR = Wilder RMA(TR, n) = (ATR₁ × (n − 1) + TR) / n
20 +```
21 +
22 +| Symbol | Meaning |
23 +| --- | --- |
24 +| `H, L` | high and low of the bar |
25 +| `C₁` | previous close |
26 +| `n` | smoothing length (default 14) |
27 +| `ATR₁` | previous ATR value |
28 +
29 +## How to read it
30 +
31 +- Rising ATR = expanding ranges (often at trend starts and at climaxes); falling ATR = compression that usually precedes a breakout.
32 +- Stops: place them 1.5–3 ATR away from entry so normal noise does not stop you out; trail them by the same multiple (chandelier exit).
33 +- Position size: risk per trade ÷ (k × ATR) equalises the dollar risk between a quiet stock and a volatile one.
34 +- ATR has no direction — a high reading means big bars, up or down.
35 +- Compare ATR with the bar you are looking at: a bar three times the ATR is an outlier worth a second look.
36 +
37 +## Default settings
38 +
39 +| Input | Default | Why |
40 +| --- | --- | --- |
41 +| `length` | `14` | Wilder's original length; the RMA weighting makes 14 behave like a ~27-bar EMA, smooth enough for stop placement. |
42 +
43 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
44 +
45 +## Best for
46 +
47 +| | |
48 +| --- | --- |
49 +| **Timeframes** | Every timeframe — the value is always in the units of the chart you are on. |
50 +| **Markets** | All, especially futures and FX where volatility differs enormously between instruments. |
51 +| **Note** | Divide by price to compare volatility between symbols (ATR %). |
52 +
53 +## Pairs well with
54 +
55 +- [Keltner Channels](/docs/charts/indicators/keltner) — EMA ± k × ATR: a smoother volatility channel than Bollinger, built on true range.
56 +- [Supertrend](/docs/charts/indicators/supertrend) — ATR-based trailing stop that flips colour with the trend — one line, long or short.
57 +- [Donchian Channels](/docs/charts/indicators/donchian) — Highest high and lowest low of the last n bars: the breakout channel of trend followers.
58 +- [Historical Volatility](/docs/charts/indicators/hv) — Annualised standard deviation of log returns, in % — the volatility options are priced on.
59 +
60 +## Pitfalls
61 +
62 +- Wilder smoothing carries the memory of a shock for a long time — a gap keeps stops wide for weeks.
63 +- On daily stock bars, the overnight gap dominates TR; on 1-minute bars TR is often just the spread.
64 +- ATR in price units is not comparable between a $10 and a $1 000 stock without normalising.
65 +
66 +## History
67 +
68 +J. Welles Wilder Jr., 1978, New Concepts in Technical Trading Systems.
69 +
70 +## See also
71 +
72 +- [Keltner Channels](/docs/charts/indicators/keltner)
73 +- [Historical Volatility](/docs/charts/indicators/hv)
74 +- [Long position tool](/docs/charts/tools/long)
75 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-auto-fib.mdx +69 −0
@@ -0,0 +1,69 @@
1 +export const meta = { title: 'Auto Fib — Auto Fibonacci (visible range)', description: 'Fibonacci retracement drawn automatically on the largest swing of the visible range.', image: '/charts/thumbs/indicator-auto-fib-dark-lg.png' }
2 +
3 +# Auto Fibonacci (visible range)
4 +
5 +<p className="lead">Fibonacci retracement drawn automatically on the largest swing of the visible range.</p>
6 +
7 +<ChartFigure kind="indicator" id="auto-fib" caption="Auto Fib with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="auto-fib" aka={["Auto Fib","Automatic retracement"]} category="Levels & structure" pane="Overlay on the price pane" />
10 +
11 +## What it measures
12 +
13 +The Auto Fibonacci finds the highest high and the lowest low among the bars on screen, treats the move from the earlier extreme to the later one as the swing, and plots the retracement levels 0, 23.6, 38.2, 50, 61.8, 78.6 and 100 %. It recomputes whenever you pan or zoom, so the levels always describe the swing you are looking at.
14 +
15 +## Formula
16 +
17 +```text
18 +swing = earlier extreme → later extreme of the visible bars
19 +level(r) = end − (end − start) · r, r ∈ {0, 0.236, 0.382, 0.5, 0.618, 0.786, 1}
20 +```
21 +
22 +| Symbol | Meaning |
23 +| --- | --- |
24 +| `start / end` | price of the first and last extreme of the visible range |
25 +| `r` | Fibonacci ratio; 0 sits at the end of the swing, 1 at its start |
26 +
27 +## How to read it
28 +
29 +- 38.2 % and 50 % are shallow pullbacks typical of strong trends; 61.8 % is the classic "golden" retracement; beyond 78.6 % the swing is usually failing.
30 +- Confluence with a moving average, a pivot or a volume-profile node makes a level much more reliable.
31 +- Zoom in to isolate one swing: the tool always uses the biggest move on screen, so a wide view measures the big trend, a narrow view the last leg.
32 +- A retracement that holds and prints a reversal candle at a level is the setup; the level alone is not.
33 +
34 +## Default settings
35 +
36 +This indicator has no inputs — there is nothing to tune.
37 +
38 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
39 +
40 +## Best for
41 +
42 +| | |
43 +| --- | --- |
44 +| **Timeframes** | Every timeframe. |
45 +| **Markets** | Every market — ratios are scale-free. |
46 +| **Note** | For a fixed anchor that does not move with the view, use the Fibonacci retracement drawing tool. |
47 +
48 +## Pairs well with
49 +
50 +- [ZigZag](/docs/charts/indicators/zigzag) — Connects swing highs and lows that exceed a deviation, filtering out the smaller noise.
51 +- [Pivot Points](/docs/charts/indicators/pivots) — Support and resistance levels for the current period computed from the previous H, L, C.
52 +- [Relative Strength Index](/docs/charts/indicators/rsi) — Momentum 0–100: above 70 overbought, below 30 oversold, divergences warn of turns.
53 +
54 +## Pitfalls
55 +
56 +- The levels move with the viewport: an alert-style reading requires the manual Fib tool.
57 +- The largest swing on screen is not always the swing that matters for your trade.
58 +- Fibonacci levels are self-fulfilling to a degree, but they are zones, not lines — expect overshoots of a few ticks.
59 +
60 +## History
61 +
62 +Fibonacci retracements were introduced to charting by Ralph Nelson Elliott (1930s–1940s) and popularised by the harmonic and swing-trading literature; the automatic visible-range version is a modern charting convenience.
63 +
64 +## See also
65 +
66 +- [Fibonacci retracement (drawing tool)](/docs/charts/tools/fib)
67 +- [ZigZag](/docs/charts/indicators/zigzag)
68 +- [Fibonacci extension (drawing tool)](/docs/charts/tools/fib-extension)
69 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-avwap.mdx +74 −0
@@ -0,0 +1,74 @@
1 +export const meta = { title: 'AVWAP — Anchored VWAP', description: 'VWAP starting from a bar you choose — the average cost of everyone in since that event.', image: '/charts/thumbs/indicator-avwap-dark-lg.png' }
2 +
3 +# Anchored VWAP
4 +
5 +<p className="lead">VWAP starting from a bar you choose — the average cost of everyone in since that event.</p>
6 +
7 +<ChartFigure kind="indicator" id="avwap" caption="AVWAP with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="avwap" aka={["AVWAP","Anchored volume-weighted average price"]} category="Trend" pane="Overlay on the price pane" />
10 +
11 +## What it measures
12 +
13 +The Anchored VWAP accumulates volume-weighted price from a specific bar — an earnings gap, a swing low, a Fed meeting — instead of the session open. It tells you the average price at which participants have traded since that event, so it marks where the crowd that entered after the anchor is in profit or under water. Bands at ± k σ show the dispersion around that cost basis.
14 +
15 +## Formula
16 +
17 +```text
18 +AVWAP_t = Σ_{i ≥ anchor} (TP_i · V_i) / Σ_{i ≥ anchor} V_i
19 +upper / lower = AVWAP ± bands · σ_vw
20 +```
21 +
22 +| Symbol | Meaning |
23 +| --- | --- |
24 +| `anchor` | timestamp of the first bar included (not set → the first loaded bar) |
25 +| `TP` | typical price (H + L + C) / 3 |
26 +| `V` | bar volume |
27 +| `bands` | σ multiples for the bands (default 1) |
28 +
29 +## How to read it
30 +
31 +- Anchor at a significant low: as long as price holds above the AVWAP, buyers since the low remain in profit and defend the level.
32 +- Anchor at a major high: the AVWAP falling from it is the resistance sellers defend.
33 +- Two AVWAPs (from the last high and the last low) pinch price into a decision zone; the break out of the pinch is the trade.
34 +- A retest of the AVWAP from above that holds is a high-quality continuation entry.
35 +- The bands widen as the move ages — a touch of the outer band far from the anchor is an extended move.
36 +
37 +## Default settings
38 +
39 +| Input | Default | Why |
40 +| --- | --- | --- |
41 +| `anchor` | `—` | No anchor set: the accumulation starts at the first loaded bar. Set it to the bar of the event you want to measure from (settings → anchor). |
42 +| `bands` | `1` | One volume-weighted σ frames the normal dispersion of prices around the cost basis. |
43 +
44 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
45 +
46 +## Best for
47 +
48 +| | |
49 +| --- | --- |
50 +| **Timeframes** | Every timeframe with volume — from 1-minute anchors at the open to daily anchors at earnings or yearly lows. |
51 +| **Markets** | Stocks, ETFs, futures, crypto with volume. |
52 +| **Note** | The anchor is in your settings only — it does not move when you scroll. |
53 +
54 +## Pairs well with
55 +
56 +- [Volume-Weighted Average Price](/docs/charts/indicators/vwap) — Volume-weighted average price since the session open — the institutional fair value.
57 +- [Volume Profile (visible range)](/docs/charts/indicators/volume-profile) — Volume traded at each price level of the visible bars, with POC and value area.
58 +- [On-Balance Volume](/docs/charts/indicators/obv) — Running total of volume signed by the close direction; should confirm price trends.
59 +
60 +## Pitfalls
61 +
62 +- A poorly chosen anchor (a random bar) measures nothing; anchor to events the market itself reacted to.
63 +- Scrolling far back past the anchor shows no line — the AVWAP only exists after its anchor.
64 +- On symbols with no volume the indicator is empty.
65 +
66 +## History
67 +
68 +Popularised by Brian Shannon (Alphatrends) in the 2000s–2010s, building on the session VWAP benchmark.
69 +
70 +## See also
71 +
72 +- [VWAP](/docs/charts/indicators/vwap)
73 +- [Volume Profile](/docs/charts/indicators/volume-profile)
74 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-bb-pctb.mdx +75 −0
@@ -0,0 +1,75 @@
1 +export const meta = { title: '%B — Bollinger %B', description: 'Where the close sits inside the Bollinger Bands: 1 = upper band, 0 = lower band.', image: '/charts/thumbs/indicator-bb-pctb-dark-lg.png' }
2 +
3 +# Bollinger %B
4 +
5 +<p className="lead">Where the close sits inside the Bollinger Bands: 1 = upper band, 0 = lower band.</p>
6 +
7 +<ChartFigure kind="indicator" id="bb-pctb" caption="%B 20 2 with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="bb-pctb" aka={["%B","Percent B"]} category="Volatility" pane="Own pane under the price" />
10 +
11 +## What it measures
12 +
13 +%B expresses the price position relative to the Bollinger Bands as a single number: 0 at the lower band, 0.5 at the middle, 1 at the upper band, beyond those values outside the bands. It turns the visual "touch" of a band into a plottable oscillator that can be compared across time, screened or used for divergences.
14 +
15 +## Formula
16 +
17 +```text
18 +%B = (src − lower) / (upper − lower)
19 +with upper / lower = SMA(src, n) ± k × σ(src, n)
20 +```
21 +
22 +| Symbol | Meaning |
23 +| --- | --- |
24 +| `src` | price source (default close) |
25 +| `n` | Bollinger length (default 20) |
26 +| `k` | standard-deviation multiplier (default 2) |
27 +
28 +## How to read it
29 +
30 +- Above 1: close above the upper band; below 0: close below the lower band — the same statistical stretch as the bands, quantified.
31 +- Bearish divergence: price makes a higher high while %B makes a lower high (the second high is less extreme relative to the bands).
32 +- Trend reading: %B holding above 0.5 for many bars is a band walk; oscillation around 0.5 is a range.
33 +- Bollinger's W-bottom test: a second price low with a higher %B than the first.
34 +- Screen with %B &lt; 0 plus a rising volume indicator for exhaustion set-ups.
35 +
36 +## Default settings
37 +
38 +| Input | Default | Why |
39 +| --- | --- | --- |
40 +| `length` | `20` | Same window as the standard Bollinger Bands so the oscillator matches what the overlay shows. |
41 +| `mult` | `2` | ±2σ bands: 0 and 1 then correspond to the classic 95 % envelope. |
42 +| `source` | `close` | Closes match the bands' own source; keep them identical to the overlay you are reading. |
43 +
44 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
45 +
46 +## Best for
47 +
48 +| | |
49 +| --- | --- |
50 +| **Timeframes** | Daily and 1-hour bars; any timeframe where you already use Bollinger Bands. |
51 +| **Markets** | Stocks, ETFs, indices, crypto. |
52 +| **Note** | Add the Bollinger Bands overlay with identical settings for context. |
53 +
54 +## Pairs well with
55 +
56 +- [Bollinger Bands](/docs/charts/indicators/bollinger) — Moving average ± k standard deviations; the band width tracks volatility.
57 +- [Bollinger Bandwidth](/docs/charts/indicators/bb-width) — Width of the Bollinger Bands as % of the middle band; lows mark the Squeeze.
58 +- [Relative Strength Index](/docs/charts/indicators/rsi) — Momentum 0–100: above 70 overbought, below 30 oversold, divergences warn of turns.
59 +- [Money Flow Index](/docs/charts/indicators/mfi) — Volume-weighted RSI 0–100: above 80 overbought, below 20 oversold, divergences matter.
60 +
61 +## Pitfalls
62 +
63 +- A reading above 1 in a strong trend is strength, not a sell signal.
64 +- %B says nothing about the width of the bands — combine with Bandwidth.
65 +- Different settings from the overlay produce readings that do not match the picture.
66 +
67 +## History
68 +
69 +John Bollinger, 2001, Bollinger on Bollinger Bands.
70 +
71 +## See also
72 +
73 +- [Bollinger Bands](/docs/charts/indicators/bollinger)
74 +- [Bollinger Bandwidth](/docs/charts/indicators/bb-width)
75 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-bb-width.mdx +74 −0
@@ -0,0 +1,74 @@
1 +export const meta = { title: 'BBW — Bollinger Bandwidth', description: 'Width of the Bollinger Bands as % of the middle band; lows mark the Squeeze.', image: '/charts/thumbs/indicator-bb-width-dark-lg.png' }
2 +
3 +# Bollinger Bandwidth
4 +
5 +<p className="lead">Width of the Bollinger Bands as % of the middle band; lows mark the Squeeze.</p>
6 +
7 +<ChartFigure kind="indicator" id="bb-width" caption="BBW 20 2 with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="bb-width" aka={["BBW","Bandwidth"]} category="Volatility" pane="Own pane under the price" />
10 +
11 +## What it measures
12 +
13 +Bandwidth measures the distance between the upper and the lower Bollinger Band as a percentage of the middle band. It isolates the volatility component of the bands so you can compare today's compression with the last six months and spot the Squeeze — the low-volatility set-up that precedes many strong moves.
14 +
15 +## Formula
16 +
17 +```text
18 +BBW = (upper − lower) / middle × 100
19 + = 2 × k × σ(src, n) / SMA(src, n) × 100
20 +```
21 +
22 +| Symbol | Meaning |
23 +| --- | --- |
24 +| `n` | Bollinger length (default 20) |
25 +| `k` | standard-deviation multiplier (default 2) |
26 +| `σ` | population standard deviation of src |
27 +
28 +## How to read it
29 +
30 +- The Squeeze: Bandwidth at its lowest level of the last ~125 bars — expect an expansion; the breakout direction comes from price, often with a head-fake first.
31 +- The Bulge: Bandwidth at a six-month high marks a volatility climax; trends often end or pause there.
32 +- Rising Bandwidth after a breakout confirms participation; a flat Bandwidth during a breakout is suspicious.
33 +- Readings are in percent of price, so they can be compared between symbols and across history.
34 +
35 +## Default settings
36 +
37 +| Input | Default | Why |
38 +| --- | --- | --- |
39 +| `length` | `20` | Same window as the standard Bollinger Bands. |
40 +| `mult` | `2` | Same multiplier as the overlay so the percentage matches the visible bands. |
41 +| `source` | `close` | Closes match the bands; keep the source identical to the overlay. |
42 +
43 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
44 +
45 +## Best for
46 +
47 +| | |
48 +| --- | --- |
49 +| **Timeframes** | Daily bars for Squeeze screening; 1-hour for intraday compressions. |
50 +| **Markets** | Stocks and ETFs above all; also crypto and index futures. |
51 +| **Note** | Judge lows against the symbol's own history rather than a fixed threshold. |
52 +
53 +## Pairs well with
54 +
55 +- [Bollinger Bands](/docs/charts/indicators/bollinger) — Moving average ± k standard deviations; the band width tracks volatility.
56 +- [Bollinger %B](/docs/charts/indicators/bb-pctb) — Where the close sits inside the Bollinger Bands: 1 = upper band, 0 = lower band.
57 +- [Keltner Channels](/docs/charts/indicators/keltner) — EMA ± k × ATR: a smoother volatility channel than Bollinger, built on true range.
58 +- [Volume](/docs/charts/indicators/volume-ma) — Volume histogram coloured by bar direction with its moving average in its own pane.
59 +
60 +## Pitfalls
61 +
62 +- A Squeeze has no direction — trading the first move out is where head-fakes bite.
63 +- Very low Bandwidth can persist for weeks in dull markets.
64 +- The percentage form breaks down for prices near zero or negative spreads.
65 +
66 +## History
67 +
68 +John Bollinger, 2001, Bollinger on Bollinger Bands.
69 +
70 +## See also
71 +
72 +- [Bollinger Bands](/docs/charts/indicators/bollinger)
73 +- [Bollinger %B](/docs/charts/indicators/bb-pctb)
74 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-bollinger.mdx +78 −0
@@ -0,0 +1,78 @@
1 +export const meta = { title: 'BB — Bollinger Bands', description: 'Moving average ± k standard deviations; the band width tracks volatility.', image: '/charts/thumbs/indicator-bollinger-dark-lg.png' }
2 +
3 +# Bollinger Bands
4 +
5 +<p className="lead">Moving average ± k standard deviations; the band width tracks volatility.</p>
6 +
7 +<ChartFigure kind="indicator" id="bollinger" caption="BB 20 2 with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="bollinger" aka={["BB","Bollinger"]} category="Volatility" pane="Overlay on the price pane" />
10 +
11 +## What it measures
12 +
13 +Bollinger Bands wrap a simple moving average with an upper and a lower band placed k standard deviations away. Because the standard deviation is computed on the same window, the bands widen when price becomes agitated and pinch when it goes quiet, so the envelope adapts to the market instead of imposing a fixed percentage.
14 +
15 +## Formula
16 +
17 +```text
18 +middle = SMA(src, n)
19 +upper = middle + k × σ(src, n)
20 +lower = middle − k × σ(src, n)
21 +```
22 +
23 +| Symbol | Meaning |
24 +| --- | --- |
25 +| `src` | price source (default close) |
26 +| `n` | window length (default 20) |
27 +| `k` | standard-deviation multiplier (default 2) |
28 +| `σ` | population standard deviation of src over the last n bars |
29 +
30 +## How to read it
31 +
32 +- A close outside a band is a statistically stretched move: in a range it leans towards mean reversion, in a trend it is a sign of strength ("walking the band").
33 +- The Squeeze: bands at their narrowest in months precede an expansion — the direction is given by the breakout bar, not by the squeeze itself.
34 +- W-bottoms and M-tops: a second low that holds inside the lower band while price is at or below the first low is a classic reversal set-up.
35 +- The middle band is the trend reference: price holding above a rising SMA 20 keeps the bias long; repeated failures at it flip the bias.
36 +- Read the width relative to its own history (see Bollinger Bandwidth) rather than in absolute price units.
37 +
38 +## Default settings
39 +
40 +| Input | Default | Why |
41 +| --- | --- | --- |
42 +| `length` | `20` | About one trading month on daily bars — long enough for a stable standard deviation, short enough to react; Bollinger suggested 10 with k 1.9 and 50 with k 2.1 for other horizons. |
43 +| `mult` | `2` | ±2σ covers roughly 95 % of a normal distribution, so touches outside the bands stay rare enough to mean something. |
44 +| `source` | `close` | Closes are the settlement prices; hlc3 or ohlc4 smooth intraday gaps and outliers. |
45 +
46 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
47 +
48 +## Best for
49 +
50 +| | |
51 +| --- | --- |
52 +| **Timeframes** | Daily and 1-hour bars for swing set-ups; intraday for squeeze breakouts. |
53 +| **Markets** | Any liquid market; especially useful on stocks and indices that alternate ranges and trends. |
54 +| **Note** | Pair with a momentum gauge to tell a band walk from an exhaustion touch. |
55 +
56 +## Pairs well with
57 +
58 +- [Relative Strength Index](/docs/charts/indicators/rsi) — Momentum 0–100: above 70 overbought, below 30 oversold, divergences warn of turns.
59 +- [Bollinger Bandwidth](/docs/charts/indicators/bb-width) — Width of the Bollinger Bands as % of the middle band; lows mark the Squeeze.
60 +- [Bollinger %B](/docs/charts/indicators/bb-pctb) — Where the close sits inside the Bollinger Bands: 1 = upper band, 0 = lower band.
61 +- [Keltner Channels](/docs/charts/indicators/keltner) — EMA ± k × ATR: a smoother volatility channel than Bollinger, built on true range.
62 +
63 +## Pitfalls
64 +
65 +- Selling the upper band in a strong uptrend fights the trend — the bands describe volatility, not overbought.
66 +- The ±2σ reading assumes normally distributed returns; fat tails make outside closes more frequent than 5 %.
67 +- The bands lag: after a shock the standard deviation stays inflated for n bars.
68 +
69 +## History
70 +
71 +John Bollinger, early 1980s, formalised in Bollinger on Bollinger Bands (2001).
72 +
73 +## See also
74 +
75 +- [Bollinger %B](/docs/charts/indicators/bb-pctb)
76 +- [Bollinger Bandwidth](/docs/charts/indicators/bb-width)
77 +- [Keltner Channels](/docs/charts/indicators/keltner)
78 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-cci.mdx +72 −0
@@ -0,0 +1,72 @@
1 +export const meta = { title: 'CCI — Commodity Channel Index', description: 'Typical price minus its SMA, scaled by mean deviation; ±100 marks unusual extension.', image: '/charts/thumbs/indicator-cci-dark-lg.png' }
2 +
3 +# Commodity Channel Index
4 +
5 +<p className="lead">Typical price minus its SMA, scaled by mean deviation; ±100 marks unusual extension.</p>
6 +
7 +<ChartFigure kind="indicator" id="cci" caption="CCI 20 with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="cci" aka={["CCI"]} category="Momentum" pane="Own pane under the price" />
10 +
11 +## What it measures
12 +
13 +The CCI measures how far the typical price (high + low + close) / 3 has drifted from its own moving average, normalised by the mean absolute deviation and a 0.015 constant. The constant is chosen so that about 70–80 % of readings fall between −100 and +100; moves beyond those levels flag an unusually strong departure from the mean.
14 +
15 +## Formula
16 +
17 +```text
18 +TP = (high + low + close) / 3
19 +CCI = (TP − SMA(TP, n)) / (0.015 × meanDeviation(TP, n))
20 +```
21 +
22 +| Symbol | Meaning |
23 +| --- | --- |
24 +| `n` | lookback length (default 20) |
25 +| `meanDeviation` | average of \|TP − SMA(TP, n)\| over the last n bars |
26 +| `0.015` | Lambert's scaling constant that keeps ~75 % of values inside ±100 |
27 +
28 +## How to read it
29 +
30 +- Above +100: the price is stretched well above its mean — either an overbought reading (range) or the start of a strong up-move (Lambert's original use: buy when CCI crosses above +100, exit when it falls back below).
31 +- Below −100: the mirror image — oversold in a range, or an emerging downtrend.
32 +- Zero line: CCI above 0 means the typical price is above its n-bar average; sustained readings on one side define the trend.
33 +- Divergence between CCI extremes and price extremes is a reliable warning in commodities and indices.
34 +- Very high readings (±200, ±300) are not "more overbought" — they measure how fast the price left its average.
35 +
36 +## Default settings
37 +
38 +| Input | Default | Why |
39 +| --- | --- | --- |
40 +| `length` | `20` | Lambert recommended a third of the dominant cycle; 20 bars fit the roughly 60-day cycle he studied in commodities. |
41 +
42 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
43 +
44 +## Best for
45 +
46 +| | |
47 +| --- | --- |
48 +| **Timeframes** | Daily and 4-hour bars for cycle work; 20 bars intraday for short breakouts. |
49 +| **Markets** | Commodities and futures (its original purpose), indices and large-cap stocks. |
50 +| **Note** | Unbounded: the scale differs from bounded oscillators like RSI. |
51 +
52 +## Pairs well with
53 +
54 +- [Simple Moving Average](/docs/charts/indicators/sma) — Arithmetic mean of the last n prices — the baseline trend filter and dynamic support.
55 +- [Average True Range](/docs/charts/indicators/atr) — Typical bar-to-bar movement in price units — the standard yardstick for stops and size.
56 +- [Donchian Channels](/docs/charts/indicators/donchian) — Highest high and lowest low of the last n bars: the breakout channel of trend followers.
57 +
58 +## Pitfalls
59 +
60 +- Two schools read it in opposite ways (breakout vs mean reversion) — decide which regime you are in before using it.
61 +- Because it is unbounded, fixed levels like ±100 are statistical, not hard limits; a strong trend keeps it beyond ±100 for long stretches.
62 +- Mean deviation collapses on quiet bars, which inflates the reading when a normal-sized move finally comes.
63 +
64 +## History
65 +
66 +Donald Lambert, 1980, in Commodities magazine.
67 +
68 +## See also
69 +
70 +- [Williams %R](/docs/charts/indicators/williams)
71 +- [Standard deviation](/docs/charts/indicators/stddev)
72 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-chaikin-osc.mdx +73 −0
@@ -0,0 +1,73 @@
1 +export const meta = { title: 'Chaikin Osc — Chaikin Oscillator', description: 'MACD of the Accumulation / Distribution line: fast EMA minus slow EMA of money flow.', image: '/charts/thumbs/indicator-chaikin-osc-dark-lg.png' }
2 +
3 +# Chaikin Oscillator
4 +
5 +<p className="lead">MACD of the Accumulation / Distribution line: fast EMA minus slow EMA of money flow.</p>
6 +
7 +<ChartFigure kind="indicator" id="chaikin-osc" caption="Chaikin 3 10 with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="chaikin-osc" aka={["Chaikin Osc","CHO"]} category="Volume" pane="Own pane under the price" />
10 +
11 +## What it measures
12 +
13 +The Chaikin Oscillator applies the MACD idea to the Accumulation / Distribution line: a 3-period EMA minus a 10-period EMA of the cumulative money flow. It measures the momentum of accumulation or distribution, turning the slow-moving A/D line into a fast oscillator around zero.
14 +
15 +## Formula
16 +
17 +```text
18 +A/D = Σ ((C − L) − (H − C)) / (H − L) × V
19 +CHO = EMA(A/D, fast) − EMA(A/D, slow)
20 +```
21 +
22 +| Symbol | Meaning |
23 +| --- | --- |
24 +| `A/D` | Accumulation / Distribution line |
25 +| `fast` | short EMA length (default 3) |
26 +| `slow` | long EMA length (default 10) |
27 +
28 +## How to read it
29 +
30 +- Crosses above zero: money flow is accelerating into the stock; below zero: out of it.
31 +- Divergence is the primary signal: price at a new high while the oscillator makes a lower high means the buying pressure that drove the first high is fading.
32 +- Use in the direction of the trend: in an uptrend, buy the oscillator's dips below zero that turn back up.
33 +- Values are in volume units — compare shape and sign, not level, between symbols.
34 +
35 +## Default settings
36 +
37 +| Input | Default | Why |
38 +| --- | --- | --- |
39 +| `fast` | `3` | Chaikin's original three-bar EMA — very responsive to the last few sessions of money flow. |
40 +| `slow` | `10` | A two-week EMA as the baseline; the 3 / 10 pair mirrors the fast trading version of the MACD. |
41 +
42 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
43 +
44 +## Best for
45 +
46 +| | |
47 +| --- | --- |
48 +| **Timeframes** | Daily bars, as designed; 1-hour bars on very liquid stocks and futures. |
49 +| **Markets** | Stocks, ETFs, index futures. |
50 +| **Note** | Noisier than Chaikin Money Flow; use it for timing, CMF for regime. |
51 +
52 +## Pairs well with
53 +
54 +- [Accumulation / Distribution](/docs/charts/indicators/ad) — Cumulative money-flow volume, each bar weighted by where the close sits in its range.
55 +- [Chaikin Money Flow](/docs/charts/indicators/cmf) — Money-flow volume over total volume for n bars, −1…+1: buying or selling pressure.
56 +- [Moving Average Convergence Divergence](/docs/charts/indicators/macd) — Fast EMA minus slow EMA, a signal EMA and the histogram between them; zero line = trend.
57 +- [Relative Strength Index](/docs/charts/indicators/rsi) — Momentum 0–100: above 70 overbought, below 30 oversold, divergences warn of turns.
58 +
59 +## Pitfalls
60 +
61 +- With a 3-bar EMA the line whipsaws around zero in quiet markets.
62 +- Inherits the A/D line's blindness to gaps.
63 +- Volume units make the amplitude meaningless across symbols and after splits.
64 +
65 +## History
66 +
67 +Marc Chaikin, 1980s.
68 +
69 +## See also
70 +
71 +- [Accumulation / Distribution](/docs/charts/indicators/ad)
72 +- [MACD](/docs/charts/indicators/macd)
73 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-choppiness.mdx +72 −0
@@ -0,0 +1,72 @@
1 +export const meta = { title: 'CHOP — Choppiness Index', description: 'Is the market trending or chopping? 0–100: above 61.8 = chop, below 38.2 = trend.', image: '/charts/thumbs/indicator-choppiness-dark-lg.png' }
2 +
3 +# Choppiness Index
4 +
5 +<p className="lead">Is the market trending or chopping? 0–100: above 61.8 = chop, below 38.2 = trend.</p>
6 +
7 +<ChartFigure kind="indicator" id="choppiness" caption="CHOP 14 with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="choppiness" aka={["CHOP"]} category="Volatility" pane="Own pane under the price" />
10 +
11 +## What it measures
12 +
13 +The Choppiness Index compares the sum of the true ranges over n bars with the total range covered during the same window, on a logarithmic scale. When bars overlap and price goes nowhere the ratio is high; when each bar extends the move the ratio is low. It says how directional the recent path was, not which way it went.
14 +
15 +## Formula
16 +
17 +```text
18 +CHOP = 100 × log10( ΣTR(n) / (maxHigh(n) − minLow(n)) ) / log10(n)
19 +```
20 +
21 +| Symbol | Meaning |
22 +| --- | --- |
23 +| `n` | lookback length (default 14) |
24 +| `ΣTR(n)` | sum of the true ranges of the last n bars |
25 +| `maxHigh − minLow` | total range covered over the same n bars |
26 +
27 +## How to read it
28 +
29 +- Above 61.8: choppy, sideways market — favour range tactics, fade extremes, avoid breakout entries.
30 +- Below 38.2: strongly directional — trend-following tools work, counter-trend fades do not.
31 +- A drop from above 61.8 to below 38.2 flags the start of a trend leg; the reverse move flags exhaustion into consolidation.
32 +- CHOP has no direction: read the sign of the move from price or a trend indicator.
33 +- Extremely high readings after a long trend often precede a violent breakout — compression before expansion.
34 +
35 +## Default settings
36 +
37 +| Input | Default | Why |
38 +| --- | --- | --- |
39 +| `length` | `14` | Wilder-style two-week window on daily bars; long enough to compare a swing with its bars, short enough to catch regime changes. |
40 +
41 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
42 +
43 +## Best for
44 +
45 +| | |
46 +| --- | --- |
47 +| **Timeframes** | Daily and 4-hour bars for regime detection; 15-minute bars to filter intraday breakout systems. |
48 +| **Markets** | Futures, FX and indices where trend / range alternation is the main risk. |
49 +| **Note** | A filter, not a signal generator. |
50 +
51 +## Pairs well with
52 +
53 +- [Average Directional Index](/docs/charts/indicators/adx) — Trend strength 0–100 regardless of direction, with +DI / −DI showing who leads.
54 +- [Donchian Channels](/docs/charts/indicators/donchian) — Highest high and lowest low of the last n bars: the breakout channel of trend followers.
55 +- [Bollinger Bands](/docs/charts/indicators/bollinger) — Moving average ± k standard deviations; the band width tracks volatility.
56 +- [Average True Range](/docs/charts/indicators/atr) — Typical bar-to-bar movement in price units — the standard yardstick for stops and size.
57 +
58 +## Pitfalls
59 +
60 +- It confirms a trend only once the trend is under way — the reading lags the first thrust.
61 +- The 38.2 / 61.8 thresholds are Fibonacci conventions, not statistical bounds; calibrate them per market.
62 +- A single gap bar inflates both numerator and denominator and can distort a short window.
63 +
64 +## History
65 +
66 +E. W. Dreiss, Australian commodity trader, 1990s.
67 +
68 +## See also
69 +
70 +- [ADX](/docs/charts/indicators/adx)
71 +- [Donchian Channels](/docs/charts/indicators/donchian)
72 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-cmf.mdx +74 −0
@@ -0,0 +1,74 @@
1 +export const meta = { title: 'CMF — Chaikin Money Flow', description: 'Money-flow volume over total volume for n bars, −1…+1: buying or selling pressure.', image: '/charts/thumbs/indicator-cmf-dark-lg.png' }
2 +
3 +# Chaikin Money Flow
4 +
5 +<p className="lead">Money-flow volume over total volume for n bars, −1…+1: buying or selling pressure.</p>
6 +
7 +<ChartFigure kind="indicator" id="cmf" caption="CMF 20 with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="cmf" aka={["CMF"]} category="Volume" pane="Own pane under the price" />
10 +
11 +## What it measures
12 +
13 +Chaikin Money Flow sums the money-flow volume (volume weighted by where the close sits in the bar's range) over n bars and divides it by the total volume of the same window. The result oscillates between −1 and +1: positive when closes cluster in the upper part of the bars on heavy volume, negative when they cluster near the lows.
14 +
15 +## Formula
16 +
17 +```text
18 +CLV = ((C − L) − (H − C)) / (H − L)
19 +CMF = Σ (CLV × V)(n) / Σ V(n)
20 +```
21 +
22 +| Symbol | Meaning |
23 +| --- | --- |
24 +| `H, L, C` | high, low, close |
25 +| `V` | volume |
26 +| `n` | window length (default 20) |
27 +| `CLV` | close location value, −1…+1 |
28 +
29 +## How to read it
30 +
31 +- Above 0: net buying pressure over the window; below 0: net selling pressure. The zero line is the regime switch.
32 +- Readings above +0.25 or below −0.25 are strong; they are more reliable when they persist for several bars than when they spike.
33 +- Divergence: price at a new high with CMF failing to exceed zero warns that the rally lacks sponsorship.
34 +- Confirm breakouts: a breakout with CMF turning positive has volume behind it; one with CMF still negative is suspect.
35 +
36 +## Default settings
37 +
38 +| Input | Default | Why |
39 +| --- | --- | --- |
40 +| `length` | `20` | Chaikin's standard is 20–21 bars, about one trading month; shorter windows react faster but flip around zero constantly. |
41 +
42 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
43 +
44 +## Best for
45 +
46 +| | |
47 +| --- | --- |
48 +| **Timeframes** | Daily bars primarily; 1-hour bars on liquid names. |
49 +| **Markets** | Stocks, ETFs and futures with genuine volume. |
50 +| **Note** | It is the windowed version of the Accumulation / Distribution line. |
51 +
52 +## Pairs well with
53 +
54 +- [Accumulation / Distribution](/docs/charts/indicators/ad) — Cumulative money-flow volume, each bar weighted by where the close sits in its range.
55 +- [Money Flow Index](/docs/charts/indicators/mfi) — Volume-weighted RSI 0–100: above 80 overbought, below 20 oversold, divergences matter.
56 +- [On-Balance Volume](/docs/charts/indicators/obv) — Running total of volume signed by the close direction; should confirm price trends.
57 +- [Moving Average Convergence Divergence](/docs/charts/indicators/macd) — Fast EMA minus slow EMA, a signal EMA and the histogram between them; zero line = trend.
58 +
59 +## Pitfalls
60 +
61 +- Gaps are ignored: a large gap that closes mid-range reads as neutral.
62 +- Rolling sums have a drop-off effect — a big bar leaving the window moves CMF with no new information.
63 +- Thin volume makes the ratio noisy and prone to extreme values.
64 +
65 +## History
66 +
67 +Marc Chaikin, 1980s.
68 +
69 +## See also
70 +
71 +- [Accumulation / Distribution](/docs/charts/indicators/ad)
72 +- [Chaikin Oscillator](/docs/charts/indicators/chaikin-osc)
73 +- [Money Flow Index](/docs/charts/indicators/mfi)
74 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-cmo.mdx +71 −0
@@ -0,0 +1,71 @@
1 +export const meta = { title: 'CMO — Chande Momentum Oscillator', description: 'Sum of gains minus losses over their total, −100…100, unsmoothed; ±50 mark the extremes.', image: '/charts/thumbs/indicator-cmo-dark-lg.png' }
2 +
3 +# Chande Momentum Oscillator
4 +
5 +<p className="lead">Sum of gains minus losses over their total, −100…100, unsmoothed; ±50 mark the extremes.</p>
6 +
7 +<ChartFigure kind="indicator" id="cmo" caption="CMO 9 with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="cmo" aka={["CMO"]} category="Momentum" pane="Own pane under the price" />
10 +
11 +## What it measures
12 +
13 +The CMO divides the difference between the sum of up-moves and the sum of down-moves by their total over the last n bars. Unlike the RSI it uses raw sums instead of Wilder smoothing and is centred on zero, so it is faster, symmetric and reaches ±100 when every bar in the window moved the same way.
14 +
15 +## Formula
16 +
17 +```text
18 +CMO = 100 × (sum(up, n) − sum(down, n)) / (sum(up, n) + sum(down, n))
19 +```
20 +
21 +| Symbol | Meaning |
22 +| --- | --- |
23 +| `n` | lookback length (default 9) |
24 +| `up` | positive close-to-close changes (0 otherwise) |
25 +| `down` | absolute negative changes (0 otherwise) |
26 +
27 +## How to read it
28 +
29 +- Above +50: overbought (equivalent to RSI 75); below −50: oversold (RSI 25).
30 +- Zero line: positive means gains outweigh losses over the window — a simple trend read.
31 +- Chande used the absolute CMO level as a trend-strength filter: high |CMO| = trending, low |CMO| = choppy.
32 +- Divergence between CMO extremes and price extremes works as with RSI, one or two bars earlier.
33 +
34 +## Default settings
35 +
36 +| Input | Default | Why |
37 +| --- | --- | --- |
38 +| `length` | `9` | Chande's published default — shorter than RSI's 14 because raw sums are already less smoothed and he wanted a fast oscillator; 14 or 20 for a calmer line. |
39 +| `source` | `close` | Closes are the standard input. |
40 +
41 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
42 +
43 +## Best for
44 +
45 +| | |
46 +| --- | --- |
47 +| **Timeframes** | Intraday to daily; the 9-bar default suits short swings. |
48 +| **Markets** | Any liquid market; the bounded scale is comparable across symbols. |
49 +| **Note** | Also used to pick the adaptive length of Chande's VIDYA moving average. |
50 +
51 +## Pairs well with
52 +
53 +- [Relative Strength Index](/docs/charts/indicators/rsi) — Momentum 0–100: above 70 overbought, below 30 oversold, divergences warn of turns.
54 +- [Average Directional Index](/docs/charts/indicators/adx) — Trend strength 0–100 regardless of direction, with +DI / −DI showing who leads.
55 +- [Exponential Moving Average](/docs/charts/indicators/ema) — Recency-weighted average that reacts faster than the SMA with less drop-off jitter.
56 +
57 +## Pitfalls
58 +
59 +- Without smoothing it is noticeably noisier than RSI and can flip from +50 to −50 in a few bars.
60 +- The zero-total case (no price change in the window) returns 0, which can look like neutrality on dead bars.
61 +- A short length in a strong trend pins it near ±100 without any reversal implication.
62 +
63 +## History
64 +
65 +Tushar Chande, 1994, in The New Technical Trader (with Stanley Kroll).
66 +
67 +## See also
68 +
69 +- [Relative Strength Index](/docs/charts/indicators/rsi)
70 +- [Stochastic RSI](/docs/charts/indicators/stochrsi)
71 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-coppock.mdx +74 −0
@@ -0,0 +1,74 @@
1 +export const meta = { title: 'Coppock — Coppock Curve', description: 'WMA of two summed rates of change; a turn up from below zero marks major market bottoms.', image: '/charts/thumbs/indicator-coppock-dark-lg.png' }
2 +
3 +# Coppock Curve
4 +
5 +<p className="lead">WMA of two summed rates of change; a turn up from below zero marks major market bottoms.</p>
6 +
7 +<ChartFigure kind="indicator" id="coppock" caption="Coppock 10 14 11 with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="coppock" aka={["Coppock","Coppock indicator"]} category="Momentum" pane="Own pane under the price" />
10 +
11 +## What it measures
12 +
13 +The Coppock Curve adds a long and a short rate of change of price and smooths the sum with a weighted moving average. Coppock built it for monthly index data to identify the start of long-term bull markets: the buy signal is the curve turning upward from negative territory, and the indicator is drawn as a histogram coloured by its sign.
14 +
15 +## Formula
16 +
17 +```text
18 +Coppock = WMA(ROC(src, long) + ROC(src, short), wma)
19 +```
20 +
21 +| Symbol | Meaning |
22 +| --- | --- |
23 +| `long` | longer ROC length (default 14) |
24 +| `short` | shorter ROC length (default 11) |
25 +| `wma` | weighted moving average length (default 10) |
26 +| `src` | price source (default close) |
27 +
28 +## How to read it
29 +
30 +- Buy signal: the curve bottoms below zero and turns up — historically reliable on monthly S&P 500 and Dow data.
31 +- Coppock did not define a sell signal; traders use a downturn from a high positive reading or a cross below zero as an exit.
32 +- The sign tells the regime: positive means the sum of the two ROCs is still expanding — a bull phase.
33 +- On daily bars the same rules work as a slow swing indicator, but the long-term "bottom finder" reputation applies to monthly data.
34 +
35 +## Default settings
36 +
37 +| Input | Default | Why |
38 +| --- | --- | --- |
39 +| `wma` | `10` | Coppock's 10-period weighted average, chosen so the indicator turns cleanly once the two ROCs agree. |
40 +| `long` | `14` | The 14-month rate of change from Coppock's original 1962 Barron's article. |
41 +| `short` | `11` | The 11-month rate of change; 11 and 14 months were, per Coppock's anecdote, the grieving period after a loss suggested by clergy. |
42 +| `source` | `close` | Closes feed both rates of change. |
43 +
44 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
45 +
46 +## Best for
47 +
48 +| | |
49 +| --- | --- |
50 +| **Timeframes** | Weekly and monthly bars (the design case); daily bars as a slow momentum filter. |
51 +| **Markets** | Broad indices and index ETFs; less meaningful on single volatile stocks. |
52 +| **Note** | Needs 14 + 10 bars of history before the first value. |
53 +
54 +## Pairs well with
55 +
56 +- [Rate of Change](/docs/charts/indicators/roc) — Percent change of price versus n bars ago; the zero line separates rising from falling.
57 +- [Know Sure Thing](/docs/charts/indicators/kst) — Weighted sum of four smoothed rates of change plus a signal line: multi-cycle momentum.
58 +- [Simple Moving Average](/docs/charts/indicators/sma) — Arithmetic mean of the last n prices — the baseline trend filter and dynamic support.
59 +
60 +## Pitfalls
61 +
62 +- Extremely slow: signals arrive weeks or months into the new trend.
63 +- No sell rule by design — treating a downturn as a sell produces early exits in bull markets.
64 +- On daily bars of a single stock it is just a smoothed ROC and loses its long-cycle rationale.
65 +
66 +## History
67 +
68 +Edwin Sedge Coppock, 1962, in Barron's, originally for monthly Dow Jones data.
69 +
70 +## See also
71 +
72 +- [Rate of Change](/docs/charts/indicators/roc)
73 +- [Know Sure Thing](/docs/charts/indicators/kst)
74 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-dema.mdx +72 −0
@@ -0,0 +1,72 @@
1 +export const meta = { title: 'DEMA — Double Exponential Moving Average', description: 'EMA with the lag of its own smoothing subtracted — quicker turns, same length.', image: '/charts/thumbs/indicator-dema-dark-lg.png' }
2 +
3 +# Double Exponential Moving Average
4 +
5 +<p className="lead">EMA with the lag of its own smoothing subtracted — quicker turns, same length.</p>
6 +
7 +<ChartFigure kind="indicator" id="dema" caption="DEMA 20 with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="dema" aka={["DEMA"]} category="Trend" pane="Overlay on the price pane" />
10 +
11 +## What it measures
12 +
13 +The DEMA takes an EMA, computes the EMA of that EMA, and subtracts the second from twice the first. The difference between the two EMAs estimates the lag, so removing it produces a line that turns sooner than a plain EMA of the same length while staying smoother than a shorter EMA.
14 +
15 +## Formula
16 +
17 +```text
18 +E1 = EMA(P, n)
19 +E2 = EMA(E1, n)
20 +DEMA = 2·E1 − E2
21 +```
22 +
23 +| Symbol | Meaning |
24 +| --- | --- |
25 +| `n` | length (default 20) |
26 +| `E1` | first EMA of the source |
27 +| `E2` | EMA of E1 (the "smoothing of the smoothing") |
28 +
29 +## How to read it
30 +
31 +- Use it where you would use an EMA when you want earlier turns without shortening the length.
32 +- A DEMA / EMA pair of the same length: the DEMA leads, the EMA confirms — the gap between them measures acceleration.
33 +- Price closing across the DEMA is a faster trend-change trigger than the equivalent EMA cross.
34 +- Like every lag-corrected average it can extrapolate slightly beyond price after sharp moves.
35 +
36 +## Default settings
37 +
38 +| Input | Default | Why |
39 +| --- | --- | --- |
40 +| `length` | `20` | Same nominal length as the default EMA so the lag reduction is visible side by side; Mulloy's articles used 20 and 50. |
41 +| `source` | `close` | Closes; the double smoothing already suppresses intrabar noise. |
42 +
43 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
44 +
45 +## Best for
46 +
47 +| | |
48 +| --- | --- |
49 +| **Timeframes** | Daily swing and intraday trend following. |
50 +| **Markets** | Trending stocks and futures. |
51 +
52 +
53 +## Pairs well with
54 +
55 +- [Triple Exponential Moving Average](/docs/charts/indicators/tema) — Three nested EMAs recombined to cancel lag — the fastest of the EMA family.
56 +- [Exponential Moving Average](/docs/charts/indicators/ema) — Recency-weighted average that reacts faster than the SMA with less drop-off jitter.
57 +- [Moving Average Convergence Divergence](/docs/charts/indicators/macd) — Fast EMA minus slow EMA, a signal EMA and the histogram between them; zero line = trend.
58 +
59 +## Pitfalls
60 +
61 +- Faster turns in trends also mean more false turns in ranges.
62 +- Not a true "average" — it can sit outside the range of the prices it was computed from.
63 +
64 +## History
65 +
66 +Patrick G. Mulloy, 1994, "Smoothing Data with Faster Moving Averages", Technical Analysis of Stocks & Commodities.
67 +
68 +## See also
69 +
70 +- [Triple Exponential MA](/docs/charts/indicators/tema)
71 +- [Exponential Moving Average](/docs/charts/indicators/ema)
72 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-donchian.mdx +72 −0
@@ -0,0 +1,72 @@
1 +export const meta = { title: 'DC — Donchian Channels', description: 'Highest high and lowest low of the last n bars: the breakout channel of trend followers.', image: '/charts/thumbs/indicator-donchian-dark-lg.png' }
2 +
3 +# Donchian Channels
4 +
5 +<p className="lead">Highest high and lowest low of the last n bars: the breakout channel of trend followers.</p>
6 +
7 +<ChartFigure kind="indicator" id="donchian" caption="DC 20 with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="donchian" aka={["DC","Donchian","Price channel"]} category="Volatility" pane="Overlay on the price pane" />
10 +
11 +## What it measures
12 +
13 +Donchian Channels plot the highest high and the lowest low over the last n bars, with a middle line halfway between them. The channel steps rather than curves, and a close through it means price has just made a new n-bar extreme — the raw material of every breakout system.
14 +
15 +## Formula
16 +
17 +```text
18 +upper = max(high, n)
19 +lower = min(low, n)
20 +middle = (upper + lower) / 2
21 +```
22 +
23 +| Symbol | Meaning |
24 +| --- | --- |
25 +| `n` | lookback length (default 20) |
26 +| `max / min` | rolling extremes over the last n bars, current bar included |
27 +
28 +## How to read it
29 +
30 +- A close above the upper channel = new n-bar high: trend-following entry (Turtle rule: buy 20-day breakouts, exit on a 10-day low).
31 +- A flat upper line means no new highs for n bars; a descending upper line means the trend has already turned down.
32 +- Channel width = n-bar range: contracting width is a consolidation, the widest width of the year marks climactic moves.
33 +- The middle line is a slow trend filter similar to a moving average but immune to the shape of the price path.
34 +
35 +## Default settings
36 +
37 +| Input | Default | Why |
38 +| --- | --- | --- |
39 +| `length` | `20` | The Turtle traders' classic entry window — about one trading month; 55 for the slower system, 10 for the exit channel. |
40 +
41 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
42 +
43 +## Best for
44 +
45 +| | |
46 +| --- | --- |
47 +| **Timeframes** | Daily bars first; weekly for position trading, 1-hour for intraday breakouts. |
48 +| **Markets** | Futures, FX and crypto — trending markets where breakouts follow through. |
49 +| **Note** | The channel is a system component; pair it with a volatility-based position size (ATR). |
50 +
51 +## Pairs well with
52 +
53 +- [Average True Range](/docs/charts/indicators/atr) — Typical bar-to-bar movement in price units — the standard yardstick for stops and size.
54 +- [Average Directional Index](/docs/charts/indicators/adx) — Trend strength 0–100 regardless of direction, with +DI / −DI showing who leads.
55 +- [Supertrend](/docs/charts/indicators/supertrend) — ATR-based trailing stop that flips colour with the trend — one line, long or short.
56 +- [Volume](/docs/charts/indicators/volume-ma) — Volume histogram coloured by bar direction with its moving average in its own pane.
57 +
58 +## Pitfalls
59 +
60 +- In ranges the channel produces repeated false breakouts; ADX or Choppiness helps to skip them.
61 +- The entry is late by construction — you buy the highest price of the last n bars.
62 +- Lookback matters: 20 and 55 give completely different trade sets on the same chart.
63 +
64 +## History
65 +
66 +Richard Donchian, 1960s; basis of Richard Dennis's Turtle trading rules (1983).
67 +
68 +## See also
69 +
70 +- [Supertrend](/docs/charts/indicators/supertrend)
71 +- [ATR](/docs/charts/indicators/atr)
72 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-dpo.mdx +72 −0
@@ -0,0 +1,72 @@
1 +export const meta = { title: 'DPO — Detrended Price Oscillator', description: 'Price minus a displaced SMA: removes the trend to expose the cycle around it.', image: '/charts/thumbs/indicator-dpo-dark-lg.png' }
2 +
3 +# Detrended Price Oscillator
4 +
5 +<p className="lead">Price minus a displaced SMA: removes the trend to expose the cycle around it.</p>
6 +
7 +<ChartFigure kind="indicator" id="dpo" caption="DPO 20 with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="dpo" aka={["DPO"]} category="Momentum" pane="Own pane under the price" />
10 +
11 +## What it measures
12 +
13 +The DPO subtracts from each price the simple moving average centred on it — the SMA shifted back by half its length plus one bar. That displacement aligns the average with the prices it summarises, so the difference isolates the short cycles around the trend instead of measuring momentum. Because of the shift, the last length / 2 + 1 bars have no value.
14 +
15 +## Formula
16 +
17 +```text
18 +shift = floor(n / 2) + 1
19 +DPO = src − SMA(src, n)[shift bars ago]
20 +```
21 +
22 +| Symbol | Meaning |
23 +| --- | --- |
24 +| `n` | SMA length (default 20) |
25 +| `shift` | displacement of the average (11 bars for n = 20) |
26 +| `src` | price source (default close) |
27 +
28 +## How to read it
29 +
30 +- Peaks and troughs of the DPO mark cycle highs and lows once the trend is removed — measure the distance between troughs to estimate the cycle length.
31 +- Above zero: price is above its centred average (upper half of the cycle); below zero: lower half.
32 +- Extreme DPO values relative to recent history flag cycle overbought / oversold conditions, useful for timing pullbacks inside a trend.
33 +- The indicator ends before the last bars: it describes past cycles, not the current bar.
34 +
35 +## Default settings
36 +
37 +| Input | Default | Why |
38 +| --- | --- | --- |
39 +| `length` | `20` | One trading month; cycles longer than 20 bars are treated as trend and removed. |
40 +| `source` | `close` | Closes are the standard input. |
41 +
42 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
43 +
44 +## Best for
45 +
46 +| | |
47 +| --- | --- |
48 +| **Timeframes** | Daily bars for cycle analysis; weekly bars for seasonal cycles. |
49 +| **Markets** | Commodities and indices with recognisable cycles. |
50 +| **Note** | A measurement tool for cycle length rather than an entry trigger. |
51 +
52 +## Pairs well with
53 +
54 +- [Simple Moving Average](/docs/charts/indicators/sma) — Arithmetic mean of the last n prices — the baseline trend filter and dynamic support.
55 +- [Stochastic Oscillator](/docs/charts/indicators/stoch) — Where the close sits in the recent high–low range, 0–100; %K / %D crosses at 20 / 80.
56 +- [Rate of Change](/docs/charts/indicators/roc) — Percent change of price versus n bars ago; the zero line separates rising from falling.
57 +
58 +## Pitfalls
59 +
60 +- The missing final bars are by design — the DPO can never tell you where the current bar stands.
61 +- Choosing a length near the dominant cycle erases the very cycle you want to see; pick about half of it.
62 +- It is not a momentum indicator despite its name and pane placement.
63 +
64 +## History
65 +
66 +Attributed to the cycle-analysis literature of the 1970s–1980s; described by Walt Bressert and in Colby's Encyclopedia of Technical Market Indicators.
67 +
68 +## See also
69 +
70 +- [Simple Moving Average](/docs/charts/indicators/sma)
71 +- [Stochastic](/docs/charts/indicators/stoch)
72 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-elder-ray.mdx +72 −0
@@ -0,0 +1,72 @@
1 +export const meta = { title: 'Bull Power / Bear Power — Elder Ray', description: 'Bull power (high − EMA 13) and bear power (low − EMA 13) as two histograms around zero.', image: '/charts/thumbs/indicator-elder-ray-dark-lg.png' }
2 +
3 +# Elder Ray
4 +
5 +<p className="lead">Bull power (high − EMA 13) and bear power (low − EMA 13) as two histograms around zero.</p>
6 +
7 +<ChartFigure kind="indicator" id="elder-ray" caption="Elder Ray 13 with its default settings on a daily chart — rendered by the HF Market Data charting engine." />
8 +
9 +<CatalogMeta kind="indicator" id="elder-ray" aka={["Bull Power / Bear Power","Elder-Ray Index"]} category="Momentum" pane="Own pane under the price" />
10 +
11 +## What it measures
12 +
13 +Elder Ray splits each bar into the buyers' ability to push the high above the 13-bar EMA (bull power) and the sellers' ability to push the low below it (bear power). The EMA stands for the consensus of value; the two histograms show how far each side managed to move price away from it, and the EMA's slope gives the trend direction.
14 +
15 +## Formula
16 +
17 +```text
18 +EMA = EMA(close, n)
19 +bull = high − EMA
20 +bear = low − EMA
21 +```
22 +
23 +| Symbol | Meaning |
24 +| --- | --- |
25 +| `n` | EMA length (default 13) |
26 +| `bull` | bull power — positive when the high is above the EMA |
27 +| `bear` | bear power — negative when the low is below the EMA |
28 +
29 +## How to read it
30 +
31 +- Buy in an uptrend (rising EMA) when bear power is negative but rising — sellers are weakening while the trend is up.
32 +- Sell in a downtrend (falling EMA) when bull power is positive but falling.
33 +- Bear power making a higher low while price makes a lower low is a strong bullish divergence; bull power lower highs on higher price highs are bearish.
34 +- Bull power negative in an uptrend, or bear power positive in a downtrend, is abnormal and warns the trend is in trouble.
35 +
36 +## Default settings
37 +
38 +| Input | Default | Why |
39 +| --- | --- | --- |
40 +| `length` | `13` | Elder's 13-bar EMA — his standard value proxy on daily charts, also used in the Triple Screen system. |
41 +
42 +Every input is editable live in **⚙ Settings → Inputs**; **Reset defaults** restores the values above.
43 +
44 +## Best for
45 +
46 +| | |
47 +| --- | --- |
48 +| **Timeframes** | Daily bars first (Elder's design), then weekly for the trend and daily for entries. |
49 +| **Markets** | Stocks and futures with reliable highs and lows. |
50 +| **Note** | Read together with the EMA slope on the price pane — add an EMA 13 overlay. |
51 +
52 +## Pairs well with
53 +
54 +- [Exponential Moving Average](/docs/charts/indicators/ema) — Recency-weighted average that reacts faster than the SMA with less drop-off jitter.
55 +- [Moving Average Convergence Divergence](/docs/charts/indicators/macd) — Fast EMA minus slow EMA, a signal EMA and the histogram between them; zero line = trend.
56 +- [Force Index](/docs/charts/indicators/force) — Price change × volume, EMA-smoothed: the force behind each move, bulls above zero.
57 +
58 +## Pitfalls
59 +
60 +- Both histograms are in price units — compare shapes and divergences, not absolute values across symbols.
61 +- Gaps push both powers to the same side of zero; single outlier bars distort the read.
62 +- Without the EMA slope as a filter, the individual histograms whipsaw.
63 +
64 +## History
65 +
66 +Dr. Alexander Elder, 1993, in Trading for a Living.
67 +
68 +## See also
69 +
70 +- [Exponential Moving Average](/docs/charts/indicators/ema)
71 +- [Force Index](/docs/charts/indicators/force)
72 +- [All indicators](/docs/charts/indicators) · [Drawing tools](/docs/charts/tools) · [Charting guide](/docs/charts)
added hfmarketdata/web/content/guides/charts-ind-ema.mdx +74 −0
Large diff (74 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-envelope.mdx +74 −0
Large diff (74 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-eom.mdx +75 −0
Large diff (75 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-force.mdx +72 −0
Large diff (72 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-hma.mdx +72 −0
Large diff (72 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-hv.mdx +74 −0
Large diff (74 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-ichimoku.mdx +80 −0
Large diff (80 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-kama.mdx +75 −0
Large diff (75 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-keltner.mdx +76 −0
Large diff (76 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-klinger.mdx +77 −0
Large diff (77 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-kst.mdx +82 −0
Large diff (82 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-lsma.mdx +77 −0
Large diff (77 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-macd.mdx +79 −0
Large diff (79 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-mass.mdx +72 −0
Large diff (72 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-mfi.mdx +75 −0
Large diff (75 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-momentum.mdx +70 −0
Large diff (70 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-obv.mdx +72 −0
Large diff (72 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-pivots.mdx +77 −0
Large diff (77 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-psar.mdx +74 −0
Large diff (74 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-roc.mdx +71 −0
Large diff (71 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-rsi.mdx +74 −0
Large diff (74 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-rvi.mdx +72 −0
Large diff (72 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-sma.mdx +72 −0
Large diff (72 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-stddev.mdx +71 −0
Large diff (71 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-stoch.mdx +74 −0
Large diff (74 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-stochrsi.mdx +77 −0
Large diff (77 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-supertrend.mdx +75 −0
Large diff (75 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-tema.mdx +71 −0
Large diff (71 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-trix.mdx +75 −0
Large diff (75 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-tsi.mdx +76 −0
Large diff (76 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-ultimate.mdx +75 −0
Large diff (75 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-volume-ma.mdx +73 −0
Large diff (73 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-volume-osc.mdx +72 −0
Large diff (72 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-volume-profile.mdx +77 −0
Large diff (77 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-vortex.mdx +70 −0
Large diff (70 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-vwap.mdx +75 −0
Large diff (75 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-williams.mdx +69 −0
Large diff (69 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-wma.mdx +70 −0
Large diff (70 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-ind-zigzag.mdx +77 −0
Large diff (77 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-indicators.mdx +27 −0
Large diff (27 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-arrow-down.mdx +57 −0
Large diff (57 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-arrow-up.mdx +57 −0
Large diff (57 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-arrow.mdx +57 −0
Large diff (57 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-brush.mdx +56 −0
Large diff (56 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-callout.mdx +58 −0
Large diff (58 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-channel.mdx +60 −0
Large diff (60 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-cross.mdx +57 −0
Large diff (57 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-date-price-range.mdx +58 −0
Large diff (58 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-date-range.mdx +57 −0
Large diff (57 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-elliott-correction.mdx +59 −0
Large diff (59 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-elliott-impulse.mdx +60 −0
Large diff (60 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-ellipse.mdx +56 −0
Large diff (56 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-extended.mdx +56 −0
Large diff (56 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-fib-arcs.mdx +58 −0
Large diff (58 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-fib-extension.mdx +60 −0
Large diff (60 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-fib-fan.mdx +58 −0
Large diff (58 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-fib-timezones.mdx +59 −0
Large diff (59 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-fib.mdx +60 −0
Large diff (60 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-flag.mdx +57 −0
Large diff (57 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-gann-box.mdx +58 −0
Large diff (58 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-gann-fan.mdx +58 −0
Large diff (58 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-head-shoulders.mdx +61 −0
Large diff (61 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-hline.mdx +60 −0
Large diff (60 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-hray.mdx +57 −0
Large diff (57 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-long.mdx +61 −0
Large diff (61 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-measure.mdx +57 −0
Large diff (57 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-mschiff.mdx +57 −0
Large diff (57 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-path.mdx +58 −0
Large diff (58 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-pitchfork.mdx +61 −0
Large diff (61 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-price-label.mdx +58 −0
Large diff (58 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-price-range.mdx +57 −0
Large diff (57 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-ray.mdx +57 −0
Large diff (57 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-rect.mdx +58 −0
Large diff (58 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-regression.mdx +61 −0
Large diff (61 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-schiff.mdx +57 −0
Large diff (57 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-short.mdx +59 −0
Large diff (59 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-text.mdx +58 −0
Large diff (58 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-trendline.mdx +61 −0
Large diff (61 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-triangle.mdx +59 −0
Large diff (59 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-vline.mdx +57 −0
Large diff (57 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-vrange.mdx +57 −0
Large diff (57 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tool-xabcd.mdx +60 −0
Large diff (60 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/content/guides/charts-tools.mdx +31 −0
Large diff (31 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/scripts/charts-docs.mjs +213 −0
Large diff (213 lines) is not loaded by default to keep the page fast.Load diff
modified hfmarketdata/web/scripts/prerender.mjs +11 −4
Large diff (35 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/src/charts/catalog/DocsBlocks.jsx +38 −0
Large diff (38 lines) is not loaded by default to keep the page fast.Load diff
added hfmarketdata/web/src/docs/guides.charts.js +109 −0
Large diff (109 lines) is not loaded by default to keep the page fast.Load diff
modified hfmarketdata/web/src/docs/guides.js +11 −3
Large diff (44 lines) is not loaded by default to keep the page fast.Load diff
modified hfmarketdata/web/src/docs/mdx-components.jsx +3 −0
Large diff (13 lines) is not loaded by default to keep the page fast.Load diff
modified hfmarketdata/web/src/docs/search.js +2 −1
Large diff (9 lines) is not loaded by default to keep the page fast.Load diff
modified hfmarketdata/web/src/pages/docs/DocsHome.jsx +1 −1
Large diff (8 lines) is not loaded by default to keep the page fast.Load diff
modified hfmarketdata/web/src/pages/docs/DocsLayout.jsx +2 −2
Large diff (16 lines) is not loaded by default to keep the page fast.Load diff
modified hfmarketdata/web/src/pages/docs/GuidePage.jsx +9 −2
Large diff (22 lines) is not loaded by default to keep the page fast.Load diff
modified hfmarketdata/web/src/pages/docs/docs.css +16 −0
Large diff (20 lines) is not loaded by default to keep the page fast.Load diff
Menu

Theme