首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从输出的对象中获取ADX值

从输出的对象中获取ADX值
EN

Stack Overflow用户
提问于 2018-06-11 10:09:06
回答 1查看 165关注 0票数 0

我正在制作这个机器人,我需要在其中获得一个ADX指示器,我使用这个库获得:https://github.com/anandanand84/technicalindicators/blob/master/test/directionalmovement/ADX.js

代码如下所示:

代码语言:javascript
复制
function updateIndicators(pair, price){
  var output = {};
  pairs[pair]['maValue'] = pairs[pair]['ma'].nextValue(price[2]);
  pairs[pair]['adxValue'] = pairs[pair]['adx'].nextValue({close: price[2] , high: price[3],
    low: price[4]});

  output = pairs[pair]['adxValue'];
  console.log(output);

  findTradeOpportunity(pair, price[2]);
  pairs[pair]['prevMaValue'] = pairs[pair]['maValue']
  pairs[pair]['prevClose'] = price[2];
}

变量对的定义如下:

代码语言:javascript
复制
  for(pair of pairsArray){
    pairs[pair]={
      ma: new SMA({period : maPeriods, values :[]}),
      maValue: 0,
      prevMaValue: 0,
      prevClose: 0,
      adx: new ADX({period: adxPeriods, close:[], high:[], low:[]}),
      adxValue: {},
      long: false,
      short: false,
      stopLossPrice: 0,
      entryAmount: 0,
      entryPrice: 0
    }
  }

问题是,当我记录输出时,nextValue对象根据我正在使用的库提供给我,我得到的结果是:

代码语言:javascript
复制
{ adx: 34.906756996039285,
  pdi: 19.8213833578075,
  mdi: 36.373822501854036 }

这是完美的。但是我只想得到adx的值,我不知道如何得到。我试着这样做:

代码语言:javascript
复制
console.log(output.adx)

但是它不理解它,它在终端中给了我这个:

代码语言:javascript
复制
/home/jturolla/Documents/btcbot/manager.js:73
  console.log(output.adx);
                     ^

TypeError: Cannot read property 'adx' of undefined
    at updateIndicators (/home/jturolla/Documents/btcbot/manager.js:73:22)
    at Manager.runBot (/home/jturolla/Documents/btcbot/manager.js:54:7)
    at Object.<anonymous> (/home/jturolla/Documents/btcbot/app.js:4:9)
    at Module._compile (internal/modules/cjs/loader.js:702:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
    at Module.load (internal/modules/cjs/loader.js:612:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
    at Function.Module._load (internal/modules/cjs/loader.js:543:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
    at startup (internal/bootstrap/node.js:238:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)

需要一些访问此adx值的帮助。谢谢。PS:我也尝试了JSON.parse(),但没有成功。

EN

回答 1

Stack Overflow用户

发布于 2018-06-11 11:00:20

这个问题的答案确实是使用以下命令获取ADX结果

代码语言:javascript
复制
console.log(output.adx)

但首先检查它是否未定义,所以函数现在看起来是这样的:

代码语言:javascript
复制
function updateIndicators(pair, price){
  var output = {};
  pairs[pair]['maValue'] = pairs[pair]['ma'].nextValue(price[2]);
  pairs[pair]['adxValue'] = pairs[pair]['adx'].nextValue({close: price[2] , high: price[3],
    low: price[4]});

  output = pairs[pair]['adxValue'];
  if(output){
    console.log(output.adx)
    findTradeOpportunity(pair, price[2]);
  }


  pairs[pair]['prevMaValue'] = pairs[pair]['maValue']
  pairs[pair]['prevClose'] = price[2];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50789696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档