我正在使用talib技术分析库来计算MACD。我使用AAPL数据来计算MACD(8,17,9)但是talib值与Google完全不同雅虎财务。
这是我的javascript(自2015-08-21以来我复制了最后的AAPL关闭数据):
var talib = require('./node_modules/talib/build/Release/talib');
var marketData = { open: [], close: [106.2199999999999989,
112.6500000000000057,
115.0100000000000051,
116.5000000000000000,
117.1599999999999966,
116,
115.1500000000000057,
115.2399999999999949,
113.5498999999999938,
119.6901000000000010,
115.5199999999999960,
115.1700000000000017,
115.4000000000000057,
114.6400000000000006,
118.4350000000000023,
121.4599999999999937,
122.3700000000000045,
122.9899999999999949,
123.3199999999999932,
122.8900000000000006,
124.4800000000000040,
125.1599999999999966,
125.2199999999999989,
130.7500000000000000,
132.0699999999999932],high: [], low: [], volume: [] };
talib.execute({
name: "MACD",
startIdx: 0,
endIdx: marketData.close.length - 1,
inReal: marketData.close,
optInFastPeriod: 8,
optInSlowPeriod: 17,
optInSignalPeriod: 9
}, function (result) {
console.log(result);
});
来自雅虎和谷歌财务的2005-08-21的MACD值为-2.73,塔利布值为3.83且与MACD数据有很大不同。我做错了什么?答案 0 :(得分:0)
25个数据点不足以获得良好的结果。 EMA系列的计算(MACD基于多组EMA系列)是递归的。对于计算EMA / MACD,我会说使用至少一年的收盘价数据。
技术指标软件的烟幕测试可能相当艰巨,因为您必须确定您正在使用完全相同的数据集,确保您从相同的初始启动值开始等,作为参考系统/计算。
就获取数据而言,雅虎显然是一种选择。 markit还提供可能有效的an api返回历史价格。
答案 1 :(得分:0)
我不是专家,但据我所知,如果你使用3个不同的时期(8,17和9),你至少需要你最长时间段的两倍数值来计算当前值。 / p>
例如,假设您在时间T并计算T-17值的17周期,您将需要至少34个值,因此可以正确计算T-17和T-16 ......直到您到达当前价值
这有意义吗?
答案 2 :(得分:0)
也许你可以用talib-binding来做这件事,我昨天写的。代码如下:
import * as talib from 'talib-binding'
talib.MACD([106.2199999999999989,
112.6500000000000057,
115.0100000000000051,
116.5000000000000000,
117.1599999999999966,
116,
115.1500000000000057,
115.2399999999999949,
113.5498999999999938,
119.6901000000000010,
115.5199999999999960,
115.1700000000000017,
115.4000000000000057,
114.6400000000000006,
118.4350000000000023,
121.4599999999999937,
122.3700000000000045,
122.9899999999999949,
123.3199999999999932,
122.8900000000000006,
124.4800000000000040,
125.1599999999999966,
125.2199999999999989,
130.7500000000000000,
132.0699999999999932], 8, 17, 9)
结果是:
[ [ 3.8371737131517705 ],
[ 2.7731844591512465 ],
[ 1.063989254000524 ] ]