tala一开始只是个技术分析库。想法很直接:你喂给它资产价格历史,再把想要的指标串起来,就能拿到一份被各种技术值填满的结果。调用链长这样——const result = tala().sma(14).rsi(14).macd().run(history)。这个模型工作得很好,跑通了计算。
但用了一段时间后,一个问题藏不住了:那些算出来的指标,如果只是盯着原始对象看,实在不够过瘾。你能在JSON输出里找到rsi14、macdHistogram和sma20这几个字段,可它们很难给你完整的感知。这些数值的本来面目,是要放在价格走势边上才读得懂的。移动平均线之所以有用,是因为它和K线之间的相对位置;RSI的价值,是它在时间轴上移动的轨迹;MACD交叉和柱状图的伸缩,换成图表一目了然。
![]()
于是tala的下一步变得很清晰。它需要一种方式,把计算的指标变成一张看得见的图表。.chart()就这样出现了。
第一版的思路并不是现在这样。我最初想把图表单独做成一个包,比如tala-viz,和计算库保持干净剥离。从设计上看,这很清爽:计算管计算,可视化管可视化。但API的手感不对。当用户已经用完tala().sma(14).rsi(14).macd()这条链,再让人家跳出去调用另一个包来看结果,整个流程就散了。更好的方案简化了许多:直接在链尾接上await tala().sma(14).rsi(14).macd().chart(history)。这才像一句自然结尾的话——把这些指标算完,然后展示给我看。于是独立包的方案被放弃了,chart()成了tala主API的一部分。
接下来是选图表层。我想要一个已经在金融图表领域做得不错的库,而不是一个靠大量配置才能勉强渲染K线的通用工具。这个选择落在了TradingView Lightweight Charts上,它开源、对TypeScript友好,专为这类场景而生。更关键的是,它和tala想生成的那种干净图表页很搭:用户不用先搭仪表板,就能直接检视K线、叠加指标和摆动指标。这里的目标不是把tala变成图表平台,而是给用户一条快速通道,一眼看到指标链到底产出了什么。
最开始我只把这个功能想得很小:渲染K线,渲染指标,搞定。结果第一张图表出现后,那些原先被忽略的缺口一个个冒了出来。SMA、EMA、布林带、VWAP这类叠加指标可以自然地放在K线图上。但摆动指标就不同了。RSI、MACD、随机指标、CCI、威廉指标、ADX没法挤在同一个窗格里,它们各自的值域不同,硬凑在一起图表看起来完整,实际上读不下去。设计就这样一点点演化——先一个窗格,再两个,最后三个,才让不同性质的指标各自安顿下来。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.