gpt4 book ai didi

c++ - 如何使用 C++ 使用 ta-lib 库进行技术分析

转载 作者:行者123 更新时间:2023-12-03 12:50:15 28 4
gpt4 key购买 nike

我正在尝试对 this data 进行一些技术分析使用ta-lib C++ 库。 ta-lib 的问题是关于它们在 C++ 中的使用的教程非常少(除了文档之外很可能没有)。我将电子表格中的 open 值(第三/C 列)转换为大小为 124 的 double vector vec。我想使用该 vector 来计算 EMA和 10 天周期的 RSI。这是

    //headers used
#include <vector>
#include <ta-lib/ta_libc.h>
std::vector <double> vec;

//Technical analysis part of the code
int n=vec.size(); //size of the vector
std::cout <<"size "<< n << ' ';
TA_RetCode retCode;
retCode = TA_Initialize( );
if( retCode != TA_SUCCESS )
std::cout<<"Cannot initialize TA-Lib !\n"<< retCode <"\n";
else
{
std::cout<<"TA-Lib correctly initialized.\n" ;

/* ... other TA-Lib functions can be used here. */
double ma=TA_MA(0,n,vec,10,TA_MAType_EMA);
double rsi=TA_RSI(0,n,vec,10);
std::cout <<"EMA "<< ma <<"\n";
std::cout <<"RSI "<< rsi <<"\n";
TA_Shutdown();
}

错误是

error: cannot convert ‘std::vector’ to ‘const double*’ for argument ‘3’ to ‘TA_RetCode TA_MA(int, int, const double*, int, TA_MAType, int*, int*, double*)

最佳答案

好吧,你的代码完全错误。

  1. 如果您想坚持使用 std::vector你需要通过 vec.data() TA-Lib 的函数而不是 vec .

  2. 你为什么认为TA_MA()返回MA值?他们都回来了 TA_RetCodeTA_SUCCESS或错误代码。是错误表述的您提供的消息以及 documentation 。并且有一个很好的示例说明如何使用静态调用此类函数数组。

  3. 为什么你认为你可以忽略 TA_MA 的最后 3 个参数这是一个指向应存储结果的数组的指针(结果是数组移动均线及其指数)?如果你想坚持 std::vector<double>您必须申报结果并预填它具有足够数量的值(以分配内存进行存储)。然后你可以使用std::vector<double>::data()再次。

关于c++ - 如何使用 C++ 使用 ta-lib 库进行技术分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38588055/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com