0

我正在尝试使用 TA-lib 中的 TA_HT_* 系列函数。我一直注意到一件非常奇怪的事情:根据我询问的输出数量,我会得到不同的值来引用相同的输入。让我解释:

std::vector<double> results(prices.size());
std::vector<double> leadResults(prices.size());
int outBeg;
int outNbElement;
assert(prices.size() > TA_HT_SINE_Lookback());
TA_HT_SINE(0, prices.size() - 1, prices.data(), &outBeg, &outNbElement, results.data(), leadResults.data());
assert(outNbElement >= 1);
auto lastSine = results[outNbElement - 1];

(results contains 0.00143562, -0.0118441, ..., -0.318535, -0.278893) 产生的结果 (lastSine) 与

std::array<double, 2> results;
std::array<double, 2> leadResults;
int outBeg;
int outNbElement;
assert(prices.size() > TA_HT_SINE_Lookback() + 1);
TA_HT_SINE(prices.size() - 2, prices.size() - 1, prices.data(), &outBeg, &outNbElement, results.data(), leadResults.data());
assert(outNbElement == 2);
auto lastSine = results[1];

(数组包含:-0.300364,-0.264885)这反过来产生不同的结果(lastSine)

double lastSine;
double lastLeadSine;
int outBeg;
int outNbElement;
assert(prices.size() > TA_TH_SINE_Lookback());
TA_HT_SINE(prices.size() - 1, prices.size() - 1, prices.data(), &outBeg, &outNbElement, &lastSine, &lastLeadSine);
assert(outNbElement == 1);

(这里 lastSine 是 -0.238856)这是为什么?这是我的代码或 TA 库中的错误吗?我期待的是我总是在计算与最后价格相关的价值。我相信我正在按照文档中的描述驾驶图书馆。

4

0 回答 0