ta lib - 如何使用 ta-lib 库进行技术分析与C++
ta lib - How to use ta-lib library for technical analysis with C++
我正在尝试使用 C++ta-lib 库对这些数据进行一些技术分析。ta-lib
的问题在于,关于它们在C++中的用法的教程很少(很可能除了文档之外没有(。我将电子表格中的open
值(第三列/第 C 列(转换为大小为 124 的矢量双vec
。我想使用此向量来计算 10 天周期的 EMA 和 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();
}
错误是
错误:无法将 的"std::vector"转换为"const double*" 参数 '3' 到 'TA_RetCode TA_MA(int, int, const double*, int, TA_MAType, int*, int*, double*(
好吧,你的代码是完全错误的。
-
如果你想坚持
std::vector
你需要通过vec.data()
TA-Lib 的功能而不是vec
. -
为什么您认为
TA_MA()
返回 MA 值?他们都回来了TA_RetCode
带有TA_SUCCESS
或错误代码。这是错误陈述的您提供的消息和文档。并且有一个很好的示例来说明如何使用静态调用此类函数阵 列。 - 为什么你认为你可以忽略
TA_MA
的最后 3 个参数,这是一个指向应存储结果的数组的指针(结果是数组移动均线及其索引(?如果你想坚持std::vector<double>
您必须为结果声明一个并预填充它具有足够数量的值(为存储分配内存(。然后,您可以再次使用std::vector<double>::data()
。
相关文章:
- 在C++中样板"冷/never_inline"错误处理技术的最佳方法是什么?
- 在 Windows 8/10 技术中完全实时的屏幕捕获,没有延迟
- C++ 关于指针取消引用的技术问题
- 是否有技术原因阻止 Java 中的 final C++ 像 const 一样严格?
- 如何在 SEAL 3.1 中使用 CRT 批处理技术Microsoft?
- 暴力破解技术解决以下问题
- std::complex<> in C++ 数学特殊函数:技术规范或提案
- 将一种类型的比特重新解释为不同类型的比特的技术
- 如何在不同的平台/技术中使用经过训练的神经网络?
- 英特尔C++编译器 19.0 测试版中删除了对英特尔®图形技术的卸载支持
- 如何在两组上做两指针技术
- 反调试器技术:如何使用 VB.NET 对调试器隐藏线程?
- 使用元编程技术找到最佳匹配
- C 类扩展技术
- 用于检查二叉树是否对称的技术
- 哪种排序技术在代码下方
- Cplex Concert 技术双胞胎
- 这在技术上可能是可能的
- 列明智的建模在音乐会技术中 - 列生成
- 从对象成员函数内部删除操作的技术 /设计模式