@debut/indicators

中文文档
2.0.1发布于 2026/05/16GPL-3.0TypeScriptESM + CJS零依赖近 30 天下载 5160

实施最受欢迎的首发环境技术库存指标

中文使用文档
文档目录28 节
  1. 特征
  2. 安装
  3. 快开始
  4. 流线模型
  5. nextValue(...) ——关闭栏
  6. momentValue(...) 栏内
  7. 可用指标
  8. 移动平均值
  9. 振荡器
  10. 时刻
  11. 趋势
  12. 波动性
  13. 频道和频段
  14. 数量
  15. 蜡烛和相片
  16. 移动/ 波浪( 定制)
  17. 运行时状态保存和恢复( R)
  18. 烛台图案
  19. 可配置阈值
  20. 联合扫描仪
  21. 流之间的 Singleton 缓冲和重置
  22. 名称空格导入
  23. 模式目录
  24. 会话卷简介
  25. 公用事业
  26. 交叉 SDK 验证
  27. 基准
  28. 许可证

npm npm NPM

简化技术指标

发起人: 反键 ——一个视觉画布,用于构建,回溯测试和优化您的浏览器中的交易策略. 建于此库上.

用于JavaScript / TypeScript的流式,分配轻技术分析工具包. 每个指标都属于一类 nextValue(...) 一次消耗一栏的方法,所以同一代码路径既驱动回试,又驱动活交易而不重建状态. 第二种方法, momentValue(...)中,计算一个假设栏的数值,而不承诺任何状态,对于在未完成的蜡烛内逐一重新计算有用.

特征

  • 流出第一义. O(期)每行;无全行重算.
  • momentValue 到处都是. 问"如果这个酒吧现在关闭了会有什么价值?" 没有变异状态.
  • 类型脚本 . 强型横穿公地表.
  • 跨 SDK 验证 . 130+ 滑稽测试 对照外部参考库对照我们的产出进行交叉检查(lwc 财务报告和审定财务报表 ti(原始内容存档于2018-09-29) (英语). With epsilon 1e-9. 见 测试 以下指标表格中,每个指标表的参数都经过核实.
  • 细小的包裹. 只有预造的船 lib/ 捆-~85 kB 沥青球.

安装

npm install @debut/indicators

快开始

import { SMA, RSI, MACD, BollingerBands } from '@debut/indicators';

const sma = new SMA(20);
const rsi = new RSI(14);
const macd = new MACD(12, 26, 9);
const bb = new BollingerBands(20, 2);

for (const bar of bars) {
    const sm = sma.nextValue(bar.close);
    const r = rsi.nextValue(bar.close);
    const m = macd.nextValue(bar.close);   // → { macd, signal, histogram }
    const b = bb.nextValue(bar.close);     // → { lower, middle, upper }
    // ...indicator outputs are `undefined` until each one's warmup completes.
}

nextValue 返回时 undefined 直到该指标看到足够的条来产生结果(它的"温"——典型的 period ) (中文(简体) ). 之后它返回每个呼叫的当前值.

流线模型

nextValue(...) ——关闭栏

每个关上酒吧就叫这个 该方法推进了内部状态并返回了新的指标值. 随后的呼声反映了承诺状态.

momentValue(...) 栏内

用活(还成型)蜡烛的价格/量来称呼它,读取指标 将 如果酒吧现在关闭, 无 实施任何州。 当你想在蜡烛内反应时有用, 但当下一个真实时, 则重排干净 nextValue 来了.

const sma = new SMA(4);
[1, 2, 3].forEach((v) => sma.nextValue(v));   // warmup
sma.momentValue(8);   // 3.5  ← preview if close=8
sma.nextValue(4);     // 2.5  ← actual close=4 commits state
sma.momentValue(8);   // 4.75 ← preview based on committed state
sma.nextValue(8);     // 4.25 ← actual close=8 commits state

可用指标

以下是按类别分类的完整目录。 名称在 code style 是精确的命名导出来源 @debut/indicators可链接的指标名称导致在 docs/编辑 测试 列标记跨 SDK 校正运行的外部库 `lwc` =: lightweight-charts-indicators, (中文(简体) ), `ti` =: technicalindicators (见 交叉 SDK 验证 这是什么意思.

移动平均值

指标导出测试说明
简单移动平均值SMAti算术的意思是一段时间.
指数移动平均值EMAti加权平均数强调近期价格.
加权移动平均数WMAti线性地增加重量 到最新的酒吧.
线性加权 MALWMA线性加权变种.
度量衡 MAEWMA可配置 α; 与 EMA 相较, 用于勾选平滑 .
平滑移动平均值SMMA怀德平滑(α = 1/周期).
威尔德的平滑MAWEMAti形状与 RMA,用于兼容性.
威尔德的平滑WWS经典怀德平滑.
适应性移动平均值AMA考夫曼适应性——在趋势上加快,在切片上放慢.
运行移动平均值RMAα=1期; SMA-种子.
壳移动平均值HMAlwc通过WMA链式(英语:WMA chaining)的减渣MA.
双层EMADEMAlwc2×EMA-EMA(EMA).
3个EMATEMA三阶段EMA减少滞后.
阿诺·勒古·马ALMAlwc高斯加权MA.
加权质量VWMAlwc每个栏按体积加权.
麦金莱动态McGinleyDynamiclwc自适应MA对市场速度的反应.
最小方块 MALSMAlwc滚动线性回归的终点.

振荡器

指标导出测试说明
相对强度指数RSIti经典14期动力振荡器.
扭曲Stochasticti相近相与高低相间.
Stochastic RSI (英语)StochasticRSItiStochastic应用到RSI.
商品渠道指数CCIti绕行-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从-从 -从-.
威廉姆斯% RWilliams反相相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相.
伟大的振荡器AOti比尔·威廉斯 5/34 SMA差价HL2.
加速振荡器AC比尔·威廉姆斯AO衍生产品.
昌德运动振荡器CMO怀德风格的CMO.
钱德·莫(LWC)ChandeMOlwcLWC 参考变体;生滚入量.
减价振荡器DPOSMA-调价.
相对维戈尔索引RVIlwcSWMA基于活性/信号对.
SMI 电子SMIErgodiclwc双流出动能(TSI没有100×).
真强指数TSIlwc有信号的双EMA动力振荡器.
波林格乐队 %BBBPercentBlwc相对于BB的价格状况.
费舍尔变形FisherTransformlwc高斯的价钱极端.
最终振荡器UltimateOscillator多时间框架加权势头.
康纳的RSIcRSI复合 RSI / 螺旋/%- 排名 .
相对波动指数RelativeVolatilityIndexlwcRSI在离我们很近的地方.

时刻

指标导出测试说明
MACD 磁共振MACDti两种EMA与信号/相片的相差.
时刻Momentumlwcclose − close[length]。 。 。 .
变化率ROCti一段时间内的百分比变化.
权力平衡BOPlwc(close − open) / (high − low)。 。 。 .
牛熊电源BullBearPowerlwc长者: high + low − 2·EMA(close)。 。 。 .
强制指数ForceIndex长老:签名价格量冲动.
长老雷ElderRay公牛/熊分权.
价格振荡器PriceOscillatorlwc有信号/相片的百分率-PPO.
笼罩曲线CoppockCurvelwc总结的长/短区域办事处.
特里克斯语TRIXti三层烟雾式EMA的ROC.
KST (韩语)KSTlwc"知道肯定的事情"加权ROC和+信号.

趋势

指标导出测试说明
平均方向指数ADXti不论方向如何,趋势强势.
方向移动指数DMI+DI, (中文(简体) ), −DI(原始内容存档于2019-09-29)., ADX.
池门云Ichimoku转换 / 基数 / 跨数 / 滞后 .
抛物线合成孔径雷达PSARti威尔斯·威尔德的后站.
超趋势SuperTrend基于ATR的动态支持/抵抗.
阿龙Aroonlwc酒吧 - 自 - 极端上下行.
短长Choppinesslwc射程和挥发力.
质量指数MassIndexlwc通过H-LEMA比进行逆向检测.
涡扇VortexlwcVI+ / VI− 方向对.
趋势强度指数TrendStrengthIndexlwc相近条指数的皮尔逊相关性.
钱德克罗尔停止ChandeKrollStoplwc基于 ATR 的长/短站级 .

波动性

指标导出测试说明
平均真实范围ATRti具有可选平滑的Wilder ATR.
日均范围ADRlwcSMA 数据 high − low。 。 。 .
历史波动HistoricalVolatilitylwc日志返回的年度 stdev .
博林格乐队BBBandWidthlwc(upper − lower) / basis × 100。 。 。 .
标准绕行StandardDeviation流出有偏见的 Stdev 提供者 .

频道和频段

指标导出测试说明
博林格乐队BollingerBandstiSMA ± k → stdev. 中国植物物种信息数据库.
东莞频道DC最高高/最低低信封.
Keltner 频道KeltnerChanneltiEMA / ATR 信封.
信封Envelopesti固定百分比的MA波段.
中位数( 上游准备带)Medianlwc滚动中位数为HL2.

数量

指标导出测试说明
平衡量OBVlwc累计签名卷.
资金流动指数MFIti卷加权RSI.
价格卷趋势PVTlwc量由相对价格变化所缩放.
音量振荡器VolumeOscillatorti体积EMAs之间的差异.
柴金振荡器ChaikinOscillatorEMA传播A/D行.
柴金出钱ChaikinMFlwcA/D在一扇窗口上除以音量.
移动方便EaseOfMovementlwc价格变化对量.
克林格振荡器Klingerlwc长行通通通相通.
净量NetVolumelwc以蜡烛为方向签名的卷子.
音量简介VolumeProfile有 POC / VAH / VAL 的会话直方图 .

蜡烛和相片

指标导出测试说明
爱克力HeikenAshi平滑的蜡烛流.
分形Fractal比尔·威廉姆斯5巴分形.
关键等级Pivot经典 / Woodie / Camarilla / Fibonacci. 古典名著有"活活活活"等.
趋势线TrendLines由引出的趋势线检测.
极端ExtremumsFractal-tyle 本地极端供应商.

移动/ 波浪( 定制)

指标导出说明
移动Move最小功率方向移动 p。 。 。 .
挥手Wave牛/熊蜡烛系列 p。 。 。 .

运行时状态保存和恢复( R)

每个状态指标都暴露出两种方法:

  • dumpState() 返回所有内部运行状态的 JSON 安全快照.
  • restoreState(state) 恢复该快照为新指标实例并返回实例.

图片包括嵌入式提供者和滚动缓冲器,如 CircularBuffer,因此一个指标可以在进程重启后继续,而不重放全部历史。 构造参数仍然是指标配置的一部分: 将状态恢复为生成快照的相同周期/选项创建的实例.

import { EMA } from '@debut/indicators';

const ema = new EMA(20);

for (const close of history) {
    ema.nextValue(close);
}

// Persist this string in your own runtime storage: database, file, Redis, etc.
const serialized = JSON.stringify(ema.dumpState());

// Later, after a restart:
const restored = new EMA(20).restoreState(JSON.parse(serialized));

const liveValue = restored.nextValue(nextClose);

对于活的系统,在承诺每个已关闭的栏后,连同指标配置和溪流身份一起,保存状态. 启动时, 以相同的构造参数重新创建每个指标, 调用 restoreState(...),然后继续通过 nextValue(...)。 。 。 .

烛台图案

每个都是流派:

import { Doji, BullishEngulfingPattern, HammerPattern } from '@debut/indicators';

const doji = new Doji();
const engulfing = new BullishEngulfingPattern();
const hammer = new HammerPattern();   // 5-bar with confirmation candle

for (const bar of bars) {
    if (doji.nextValue(bar.open, bar.high, bar.low, bar.close)) console.log('Doji', bar.time);
    if (engulfing.nextValue(bar.open, bar.high, bar.low, bar.close)) console.log('Bull Engulfing', bar.time);
    if (hammer.nextValue(bar.open, bar.high, bar.low, bar.close)) console.log('Hammer', bar.time);
}

nextValue 返回时 true 当定时, false 如果没有,和 undefined 虽然它仍在变暖(多巴模式首先需要它们完全回放).

可配置阈值

每个图案都接受其构造器中的选项包. 默认匹配 ti 精确的引用; 收紧或放轻松.

选项用于默认说明
precisionDoji-family,Marubozu,锤子,HaramiCross,HammerPattern,吊车人,射击之星,被弃用/Doji-Star等变型0.001模糊-相匹配的容忍度:多近 open≈close (或 body- 触摸着..high编号 :low)必须有资格成为"平等". 0.001 0.1%的相对关系.
shadowToBodyRatio锤子-棒子变体 锤子-板子-吊人-射击之星2对立的阴影必须至少是身体长度的多倍.
minShadowToBodyRatio旋转Top 变体1这两个阴影必须严格地以这个比例大于身体.
equalityToleranceWee-相接/相接0 (准确)有多近? 这么近 low[i]编号 :high[i] 两道蜡烛必须如此.
confirm锤子板 吊人 射击之星true需要五号酒吧的确认蜡烛 这个 *Unconfirmed 变体将它翻转到 false。 。 。 .
const wideDoji = new Doji({ precision: 0.005 });           // 0.5% relative tolerance
const fastHammer = new HammerPattern({ confirm: false });  // skip the confirmation candle
const looseTweezer = new TweezerBottom({ equalityTolerance: 0.0001 });

联合扫描仪

如果你想同时对照许多图案扫描一栏,请使用三个组合扫描仪中的一个. 他们共享单子 OhlcBuffer 在图案模块中声明 这样你就不会支付每平面缓冲器的费用.

import { AllCandlestickPatterns, BullishPatterns, BearishPatterns } from '@debut/indicators';

const all = new AllCandlestickPatterns();
const bull = new BullishPatterns();
const bear = new BearishPatterns();

for (const bar of bars) {
    const fired = all.nextValue(bar.open, bar.high, bar.low, bar.close);
    if (fired.length) console.log(bar.time, fired);
    // → e.g. [1700000000, ['BullishHammerStick', 'BullishMarubozu']]

    if (bull.nextValue(bar.open, bar.high, bar.low, bar.close)) console.log('any bullish');
    if (bear.nextValue(bar.open, bar.high, bar.low, bar.close)) console.log('any bearish');
}

AllCandlestickPatterns.nextValue 返回向栏下开火的图案名称; BullishPatterns 编号 : BearishPatterns 返回单个布尔 ("did") 任意 模式火".

流之间的 Singleton 缓冲和重置

所有多栏模式共享一个 OhlcBuffer(5) 在模块范围内宣布的 src/candlestick/patterns.ts。第一个看到全新的栏杆推进缓冲器的图案;同一勾中后来的调用被OHLC Equality解开. 这意味着在新的模式实例中下降基本上是免费的——没有按平面分配的环.

如果您在独立的条流间切换( 或想要在测试个案间打扫), 请拨 BasePattern.reset()数字 :

import { BasePattern } from '@debut/indicators/lib/src/candlestick/patterns';

BasePattern.reset(); // clears the singleton OHLC ring + dedupe state

名称空格导入

如果你不想把35个符号拉入范围:

import { Candlestick } from '@debut/indicators';

const doji = new Candlestick.Doji();
const all = new Candlestick.AllCandlestickPatterns();

模式目录

回想起来模式
1个栏Doji, (中文(简体) ), DragonFlyDoji, (中文(简体) ), GraveStoneDoji, (中文(简体) ), BearishHammerStick, (中文(简体) ), BullishHammerStick, (中文(简体) ), BearishInvertedHammerStick, (中文(简体) ), BullishInvertedHammerStick, (中文(简体) ), BearishMarubozu, (中文(简体) ), BullishMarubozu, (中文(简体) ), BearishSpinningTop, (中文(简体) ), BullishSpinningTop
2个栏BearishEngulfingPattern, (中文(简体) ), BullishEngulfingPattern, (中文(简体) ), BearishHarami, (中文(简体) ), BullishHarami, (中文(简体) ), BearishHaramiCross, (中文(简体) ), BullishHaramiCross, (中文(简体) ), DarkCloudCover, (中文(简体) ), PiercingLine
3个栏AbandonedBaby, (中文(简体) ), DownsideTasukiGap, (中文(简体) ), EveningStar, (中文(简体) ), EveningDojiStar, (中文(简体) ), MorningStar, (中文(简体) ), MorningDojiStar, (中文(简体) ), ThreeBlackCrows, (中文(简体) ), ThreeWhiteSoldiers
5个栏HammerPattern, (中文(简体) ), HammerPatternUnconfirmed, (中文(简体) ), HangingMan, (中文(简体) ), HangingManUnconfirmed, (中文(简体) ), ShootingStar, (中文(简体) ), ShootingStarUnconfirmed, (中文(简体) ), TweezerBottom, (中文(简体) ), TweezerTop

会话卷简介

VolumeProfile 跨价格行交易总量和曝光量 POC 移动, (中文(简体) ), VAH 维基百科 编号 : VAL 评价 可配置 tickSize、分发和会议定位'daily' 默认情况下 —— 无限制的流不能永远地长出行图.

import { VolumeProfile } from '@debut/indicators';
const vp = new VolumeProfile({ tickSize: 0.5 });
for (const bar of bars) {
    const { poc, val, vah, total } = vp.nextValue(bar);
}

完整的选项、公式、业绩说明和自定义会议配方: 文件/卷。 。 。 .

公用事业

导出说明
CircularBuffer固定大小的环缓冲器 at() 编号 : peek() 编号 : forEach(). 将大多数滚动窗口指标的权力.
Sampler样本-样本提供方用于堆放平滑(例如. SMA(SMA(SMA(...)))) (中文(简体) ).
Correlation流出皮尔逊相关.
Level, (中文(简体) ), UniLevel动态关卡(Unilevel: 平衡于 0左右).
Extremums分形型局部外观.
Candles由图案探测器共享的活烛台上下文(身体,阴影,多吉,趋势).

交叉 SDK 验证

每个端口指示器和烛台图案都有维特风格的光谱 tests/<name>/<name>.spec.ts 即:

  1. 生成有种子LCG的确定性合成OHLCV条(见 tests/lwc-fixtures.ts) (中文(简体) ).
  2. 把他们流出河中 @debut/indicators 课.
  3. 在同一条行中运行 lwc calculate() (或 ti ————见 测试 每个指标表格中与该图案对应的参数.
  4. 与 epsilon 1e-9(或为布尔模式射击设定成员)保持数值平等.

运行 npm test 执行完整的套房.

基准

苹果M1 Pro,节点 v16.14.0. 在有100k元素的数据集上测试.

指标名称@debut/指标(ops/sec)技术指标(ops/sec)指标(ops/sec)
超级振荡器318国道第23条158 (中文(简体) )
备忘358 (韩语)第42条页:1
ATR 软件613号136个95 (韩语)
博林格乐队347个第9条页:1
公民信息中心151 (韩语)第12条158 (中文(简体) )
华盛顿474个页:1第74条
PSAR 搜索和救援系统1 453个278 (韩语)第666条
埃米尔1 720 个452个1 537个
MACD 磁共振1,417个90 (韩语)467 (韩语)
区域办事处3 625个64国道页:1
RSI 广播电视服务1 239个第38条页:1
斯马678号65个645 (中文(简体) )
韦玛1 462个455 (韩语)页:1
妇女287 (韩语)第41条页:1
扭曲页:1第25条67国道

基准结果由 https://github.com/debut-js/indexators-benchmark 页面存档备份,存于互联网档案馆

许可证

GPL-3.0 (英语)

版本与发布记录

@debut/indicators 共发布 57 个版本,首次发布于 2021/05/26;过去 12 个月发布了 3 个版本。

版本发布日期距今
2.0.1latest2026/05/165 个月前
2.0.02026/05/096 个月前
1.4.22026/04/286 个月前
1.3.222024/11/032 年前
1.3.212024/09/222 年前
1.3.202024/03/092 年前

关于 @debut/indicators 的常见问题

@debut/indicators 是什么?

实施最受欢迎的首发环境技术库存指标

如何安装 @debut/indicators?

在项目目录运行 npm install @debut/indicators,或使用 pnpm add / yarn add / bun add。

@debut/indicators 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@debut/indicators 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@debut/indicators 可以商用吗?

@debut/indicators 使用 GPL-3.0 许可。强 Copyleft:分发包含该代码的软件时,整个作品需以 GPL-3.0 兼容许可开源,并附带专利与反锁定条款。仅内部使用不触发此义务。以上为概括,不构成法律意见,请以许可原文为准。

@debut/indicators 的下载量有多少?

根据 npm 官方下载统计,@debut/indicators 在 2026/10/12 – 2026/11/10 这 30 天内被下载 5,160 次,日均约 172 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@debut/indicators 还在维护吗?

最新版本 2.0.1 发布于 2026/05/16(5 个月前);至今共发布 57 个版本,其中过去 12 个月发布了 3 个;首次发布于 2021/05/26。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。