function
htTrendline
Public declaration. Read the signature and parameter/member contracts below; no additional behavior is inferred.
export declare const htTrendline: import('@insiderfinance/totalfinance/technical-analysis').Indicator<Empty, number, number>;Fields, parameters & returned members (35)
| Name / type | Meaning & unit | Optional / default |
|---|---|---|
(input)ArrayLike<number> | unitless by name | Required / declared member No @default declared; consult the signature and description. |
(parameters)Empty | undefined | unitless by name | Optional No @default declared; consult the signature and description. |
explain(input: ArrayLike<number>, parameters?: Empty | undefined) => import('@insiderfinance/totalfinance/technical-analysis').TechnicalAnalysisExplain<number> | unitless by name | Required / declared member No @default declared; consult the signature and description. |
explain().return.assumptionsimport('@insiderfinance/totalfinance/core').Assumptions<import('@insiderfinance/totalfinance/technical-analysis').TechnicalAnalysisAssumptionExtras> | Every applied convention, echoed back. unitless by name | Required / declared member No @default declared; consult the signature and description. |
explain().return.diagnosticsimport('@insiderfinance/totalfinance/core').Diagnostics & { warmup: number; } | unitless by name | Required / declared member No @default declared; consult the signature and description. |
explain().return.diagnostics.autoReasonstring | When a meta-engine (e.g. `engines.auto()`) selected a delegate, this is a one-sentence,
human-readable explanation of WHY that delegate was chosen (`engine` then names the delegate).
Absent when no auto-selection took place. unitless by name | Optional No @default declared; consult the signature and description. |
explain().return.diagnostics.convergedboolean | Whether an iterative procedure converged. `false` means the value is not trustworthy. unitless by name | Optional No @default declared; consult the signature and description. |
explain().return.diagnostics.decompositionRecord<string, number> | Named intermediate quantities the value decomposes into — a par spread's protection leg and
risky annuity, a forward variance's near/far legs. The H-series explain paths disclose their
arithmetic here so a caller can audit the ratio, not just receive it (3B.3). unitless by name | Optional No @default declared; consult the signature and description. |
explain().return.diagnostics.enginestring | Pricing/solver engine name, e.g. `black-scholes-merton`. unitless by name | Optional No @default declared; consult the signature and description. |
explain().return.diagnostics.finiteDifferenceBumpsRecord<string, number> | Finite-difference engines: the ACTUAL bump sizes used for FD Greeks (spec P2.3) — adaptive
near the vol/time boundaries, so the caller can see exactly what was differenced.
Keys: `spotStep`, `volatilityStep`, `timeStepYears`, `rateStep`, and — extended Greeks only —
`dividendYieldStep`. Each is the actual step differenced, in the unit of the coordinate it
bumps. (This doc named the retired `hS`/`hSig`/`hT`/`hR`/`hQ` keys for one release after the
emit sites had moved to the semantic names, so a caller following it read `undefined`.) unitless by name | Optional No @default declared; consult the signature and description. |
explain().return.diagnostics.iterationsnumber | Iteration count for iterative methods. unitless by name | Optional No @default declared; consult the signature and description. |
explain().return.diagnostics.methodstring | Numerical method, e.g. `closed-form`, `brent`, `finite-difference`. unitless by name | Optional No @default declared; consult the signature and description. |
explain().return.diagnostics.selectionimport('@insiderfinance/totalfinance/core/pricing').SelectionReport | The structured engine-selection report (Gate C, `@insiderfinance/totalfinance/core/pricing`): who was selected,
why, and — for automatic selection — every candidate considered with its verdict. This is the
machine-readable superset of `engine` + `autoReason` (which remain for compatibility);
`selected.name` always agrees with `engine` when both are present. unitless by name | Optional No @default declared; consult the signature and description. |
explain().return.diagnostics.timingMsnumber | Wall-clock timing in milliseconds, when measured. milliseconds | Optional No @default declared; consult the signature and description. |
explain().return.diagnostics.warmupnumber | Series facades: number of leading output slots that are warmup sentinels (null/NaN) while the
computation seeds. Equals the input length when the indicator never emitted. unitless by name | Optional No @default declared; consult the signature and description. |
explain().return.diagnostics.warningsimport('@insiderfinance/totalfinance/core').QuantWarning[] | Structured warnings; always present (possibly empty). unitless by name | Required / declared member No @default declared; consult the signature and description. |
explain().return.provenanceimport('@insiderfinance/totalfinance/core').Provenance | Optional data lineage when the inputs came from a provider. unitless by name | Optional No @default declared; consult the signature and description. |
explain().return.valuenumber[] | The computed value. Never `NaN` or `±Infinity`: a value the model cannot produce is `null`
beside a diagnostic that says why (Law 7 — a warning never licenses a non-finite number). unitless by name | Required / declared member No @default declared; consult the signature and description. |
explain(input)ArrayLike<number> | unitless by name | Required / declared member No @default declared; consult the signature and description. |
explain(parameters)Empty | undefined | unitless by name | Optional No @default declared; consult the signature and description. |
fromJSON(snapshot: TechnicalAnalysisSnapshot) => import('@insiderfinance/totalfinance/technical-analysis').LiveStream<number, number> | unitless by name | Required / declared member No @default declared; consult the signature and description. |
fromJSON().return.next(input: number) => number | null | unitless by name | Required / declared member No @default declared; consult the signature and description. |
fromJSON().return.peek(input: number) => number | null | The value that WOULD result from `next(input)` applied to the committed state, WITHOUT committing
it. Call it repeatedly with the forming bar's evolving value; call `next(input)` once at bar close
to commit. Between commits the committed state is untouched, so a live chart never repaints its
closed bars. The default cost is O(snapshot) per call (clone-and-apply); indicators may override
with an O(1) form later. unitless by name | Required / declared member No @default declared; consult the signature and description. |
fromJSON().return.toJSON() => TechnicalAnalysisSnapshot | unitless by name | Required / declared member No @default declared; consult the signature and description. |
fromJSON().return.valuenumber | null | unitless by name | Required / declared member No @default declared; consult the signature and description. |
fromJSON(snapshot)TechnicalAnalysisSnapshot | unitless by name | Required / declared member No @default declared; consult the signature and description. |
fromJSON(snapshot).kindstring | unitless by name | Required / declared member No @default declared; consult the signature and description. |
fromJSON(snapshot).schemaVersionnumber | Schema version, stamped at the serialization boundary by {@link snapshotOf}. unitless by name | Required / declared member No @default declared; consult the signature and description. |
fromJSON(snapshot).stateRecord<string, unknown> | Indicator-private stream state. Round-trip it; never read into it. unitless by name | Required / declared member No @default declared; consult the signature and description. |
stream(parameters?: Empty | undefined) => import('@insiderfinance/totalfinance/technical-analysis').LiveStream<number, number> | unitless by name | Required / declared member No @default declared; consult the signature and description. |
stream().return.next(input: number) => number | null | unitless by name | Required / declared member No @default declared; consult the signature and description. |
stream().return.peek(input: number) => number | null | The value that WOULD result from `next(input)` applied to the committed state, WITHOUT committing
it. Call it repeatedly with the forming bar's evolving value; call `next(input)` once at bar close
to commit. Between commits the committed state is untouched, so a live chart never repaints its
closed bars. The default cost is O(snapshot) per call (clone-and-apply); indicators may override
with an O(1) form later. unitless by name | Required / declared member No @default declared; consult the signature and description. |
stream().return.toJSON() => TechnicalAnalysisSnapshot | unitless by name | Required / declared member No @default declared; consult the signature and description. |
stream().return.valuenumber | null | unitless by name | Required / declared member No @default declared; consult the signature and description. |
stream(parameters)Empty | undefined | unitless by name | Optional No @default declared; consult the signature and description. |
Stability, warnings & conventions
stable-by-law (pre-1.0; not a 1.0 stability guarantee)
Declared field units are shown above. “Unitless by name” means the name alone does not establish a unit, not that a financial quantity has none. Check source descriptions, conventions, and the returned diagnostics. Errors and warnings are part of the result contract.