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.