0

我正在使用 node-talib 开发一种金融技术分析算法,它是 TALIB(技术分析库)的包装器。

给定一个包含 400 个仓位的 marketdata 数组,我执行 ADX,得到一个包含 384 个仓位的数组。这是什么意思?那个数组代表什么?

我添加一个代码示例:

const talib = require("node-talib")
// Load market data
var marketContents = fs.readFileSync('examples/marketdata.json','utf8'); 
var marketData = JSON.parse(marketContents);

// execute ADX indicator function with time period 9
talib.execute({
    name: "ADX",
    startIdx: 0,
    endIdx: marketData.close.length - 1,
    high: marketData.high,
    low: marketData.low,
    close: marketData.close,
    optInTimePeriod: 9
}, function (err, result) {

    // Show the result array
    console.log("ADX Function Results:");
    console.log(result);

});


where marketdata is an object of arrays like this: 

{
   "open": [
        448.36,
        448.45,
        447.49,
        (...) ],
  "close": [
        448.36,
        448.45,
        447.49,
        (...) ],
   "min": [
        448.36,
        448.45,
        447.49,
        (...) ],
   "max": [
        448.36,
        448.45,
        447.49,
        (...) ],
  "volume": [
        448.36,
        448.45,
        447.49,
        (...) ]
   }

结果是一个浮点数组(总是小于 marketdata.open/close/min/max 长度)。

谢谢

4

1 回答 1

2

您最好阅读官方 c++ 文档 简而言之,结果数组的大小始终与输入数组相同或小于输入数组。例如,对于 5 天的平均值,它会更少。如果将其应用于 60 天的输入数据,则只会得到 56 个结果。因为 5 天平均值需要计算 5 个值,而前 4 天它是未定义的。因此结果数组包含对应于最后n输入值的数据,n <= input array size具体取决于您应用的指标。

于 2017-08-30T22:35:10.417 回答