TA-Lib C++金融技术分析库使用初体验
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
TA-Lib是一个用于金融技术分析的C++库,可以用来计算MACD,动量,移动均线等常用指标等
本文对TA-Lib做了一个简单的使用初体验
源码下载
地址:ta-lib
注意这里面有多个源码包,选择msvc这个版本(windows和linux编译都用这个版本的源码)
下载后源码目录
根目录ta-lib和ta-lib/c
编译
使用TA-Lib需要先编译出对应链接库,支持编译静态和动态连接库
本文以编译静态库为例,其中源码解压后根目录为ta-lib
windows
环境:win7 + vs2015
这里编译出x64的lib
打开VS2015 x64 Native Tools Command Prompt命令行执行
cd ta-lib\c\make\cmr\win32\msvc
nmake
注意
- 这里可能会报gen_code失败,可以忽略,如果有其他问题,可以先
nmake clean
一下 - 要确保ta-lib\c\lib这个目录是存在的
编译的结果在 ta-lib/c/lib
目录
linux
环境:ubuntu14.04 + gcc4.8
命令行执行
cd ta-lib/c/make/cmr/linux/g++
make
编译的结果在 ta-lib/c/lib
目录
.
├── libta_abstract_cmr.a
├── libta_common_cmr.a
├── libta_func_cmr.a
└── libta_libc_cmr.a
使用示例
windows
建立vs2015项目talibtest,配置ta-lib的包含头文件和包含库目录以及附加依赖项
- include目录:
D:\Programs\ta-lib\c\include
- lib目录:
D:\Programs\ta-lib\c\lib
- 附加依赖项:
ta_abstract_cmr.lib ta_common_cmr.lib ta_func_cmr.lib ta_libc_cmr.lib
linux
建立cmake项目talibtest,配置cmake文件
project(talibtest)
cmake_minimum_required(VERSION 2.8)
add_definitions(-std=c++11)
include_directories(/home/user/codetest/ta-lib/c/include)
aux_source_directory(. SRC_LIST)
link_directories(/home/user/codetest/ta-lib/c/lib)
add_executable(${PROJECT_NAME} ${SRC_LIST})
# link static library, notice the link sequence
target_link_libraries(${PROJECT_NAME}
libta_common_cmr.a
libta_libc_cmr.a
libta_abstract_cmr.a
libta_func_cmr.a)
代码
一个简单计算30天移动平均线的example
#include <iostream>
#include <time.h>
#include <assert.h>
#include "ta_libc.h"
int main()
{
std::cout << "ta-lib test" << std::endl;
// init ta-lib context
TA_RetCode retcode;
retcode = TA_Initialize();
assert(retcode == TA_SUCCESS);
// comput moving average price
TA_Real close_price_array[400] = { 0 };
// construct random price
srand((unsigned)time(0));
for (int i = 0; i < 400; i++)
close_price_array[i] = rand() % 50 + 100;
TA_Real out[400] = { 0 };
TA_Integer out_begin = 0;
TA_Integer out_nb_element = 0;
retcode = TA_MA(0, 399,
&close_price_array[0],
30, TA_MAType_SMA,
&out_begin, &out_nb_element, &out[0]);
assert(retcode == TA_SUCCESS);
std::cout << "---- compute output ----" << std::endl;
std::cout << "out_begin_index: " << out_begin << std::endl;
std::cout << "out_nb_element: " << out_nb_element << std::endl;
std::cout << "out price array: " << std::endl;
for (auto &price : out)
std::cout << price << " ";
retcode = TA_Shutdown();
assert(retcode == TA_SUCCESS);
return 0;
}
结果
ta-lib test
---- compute output ----
out_begin_index: 29
out_nb_element: 371
out price array:
125.533 125.633 124.367 124.567 123.833 124.833 124.067 122.733 123.367 ...
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献12条内容
所有评论(0)