我正在制作这个机器人,我需要在其中获得一个ADX指示器,我使用这个库获得:https://github.com/anandanand84/technicalindicators/blob/master/test/directionalmovement/ADX.js
代码如下所示:
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];
}变量对的定义如下:
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对象根据我正在使用的库提供给我,我得到的结果是:
{ adx: 34.906756996039285,
pdi: 19.8213833578075,
mdi: 36.373822501854036 }这是完美的。但是我只想得到adx的值,我不知道如何得到。我试着这样做:
console.log(output.adx)但是它不理解它,它在终端中给了我这个:
/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(),但没有成功。
发布于 2018-06-11 11:00:20
这个问题的答案确实是使用以下命令获取ADX结果
console.log(output.adx)但首先检查它是否未定义,所以函数现在看起来是这样的:
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];
}https://stackoverflow.com/questions/50789696
复制相似问题