java异步ta_造轮子系列(四): 给nodejs一个ta-lib的同步封装

最近一直在捣腾BTC的期货现货交易, 发现要自己写一个指标函数太难, 因为没法测试正确性.

TA-Lib 是一个金融指数函数库, 包含了常用的100多种指数函数, 比如MACD, SAR等. 采用c语言编写, 官方支持Excel, c, java, perl, python等编程语言, 但是唯独没有nodejs的binding. 所以网上出现了若干个相关的库, 比如在npmjs上关键字包含talib的包 就有好几个. 其中最热门的是node-talib, 在github上面有好几百个star, 但是这个函数异常难用:

是一个异步封装, 对于这种纯计算的指标函数来说, 异步函数完全没有存在的意义.

只有一个有效接口execute, 内部通过函数指针来实现调用, 无形中降低了性能.

对入参解释模棱两可, 比如参数有哪些? 默认值是啥等, 都没有给出文档.

于是就想自己造一个轮子, 顺便学一学写nodejs的addon.

调用比起ta-lib要简单的多了, 比如:

直接接口调用, 不走函数指针

同步操作

支持传递Record结构自动取值

typescript的interface也已自动构建好, 函数签名, 默认值一应俱全!

调用非常简单, 比如:

import * as talib from "talib-binding"

// Input double array directly:

let output = talib.SAR(

[2, 3, 4, 5], /* inHigh */

[1, 2, 3, 4], /* inLow */

0.02, /* optAcceleration_Factor, optional */

0.2, /* optAF_Maximum, optional */

0, /* startIdx, optional */

3 /* endIdx, optional */

)

console.log(output)

// 或者传入一个`Record[]`结构

output = talib.SAR([

{Time: 0, High: 2, Low: 1},

{Time: 0, High: 3, Low: 2},

// ...

])

更多细节请移步GitHub.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值