如何使用TA-LIB进行技术分析?
来源:互联网 发布:徐老师淘宝店叫什么 编辑:程序博客网 时间:2024/05/28 18:42
想要不依赖于商业软件或量化平台做技术分析,可以尝试使用本文中介绍的TA-LIB的C++库,全称为Technical Analysis Library。使用这个库可以与C++的回测框架做无缝连接,同时省去很多开发底层技术指标需要“浪费”的时间。而且,公开的库已经被充分地被用于实战检验,存在bug的几率小。
废话不多说,我们直接上一段入门代码:
TA_Initialize(); // 初始化TA-LIB,确保只调用一次TA_Integer startIdx = 0;TA_Integer endIdx = size - 1;TA_Integer outBegin;TA_Integer outNbElement;TA_Integer optPeriod = 30;TA_Integer allocationSize = 0;TA_Integer lookback = TA_SMA_Lookback(optPeriod);TA_Integer temp = max(lookback, startIdx);if (temp > endIdx) { allocationSize = 0; // No output} else { allocationSize = endIdx - temp +1;}TA_Real outMA[allocationSize];TA_RetCode retCode = TA_MA(startIdx, endIdx, &closePrice[0], optPeriod, TA_MAType_SMA, &outBegin, &outNbElement, &outMA[0]);for (int i=0; i < outNbElement; i++) { printf("%s: %d = %f\n", updateTime[outBegin+i], outBegin+i, outMA[i]);}TA_Shutdown();
以上代码段是计算周期为30日、收盘价的简单移动平均线。一般地,技术指标序列要短于行情序列,比如30日均线必须要等到有30个交易日的收盘价才能计算第一个均值,如果使用行情序列的size作为输出数组的size,就会存在内存空间的浪费。Line7-Line16,利用TA_SMA_Lookback精确地计算需要的输出空间,其他策略有注入TA_XX_Lookback形式的函数可以使用。当然不计较内存的话,直接用endIdx-startIdx+1也是可以的。
TA_RetCode retCode = TA_MA(startIdx, endIdx, &closePrice[0], optPeriod, TA_MAType_SMA, &outBegin, &outNbElement, &outMA[0]);
核心函数是TA_MA,前两个参数startIdx和endIdx指定了由第三个参数&closePrice为起始内存地址的区间[startIdx, endIdx)的收盘价作为计算目标,optPeriod和TA_MAType_SMA分别为指标周期和指标类型。
outBegin是策略计算的开始地址,跟Line8中TA_SMA_Lookback()的返回值是一致地。outNbElement是输出的元素个数,等于max(0, endIdx-startIdx-optPeriod)。最后一个参数是输出计算结果的保存地址。
计算其他的技术指标类似,具体在使用的时候去参照头文件中的函数定义,参见ta_func.h。
阅读全文
0 0
- 如何使用TA-LIB进行技术分析?
- TA-Lib:技术分析库简介
- 多平台的开源股票市场技术分析库:TA-LIB
- 在Python2.7下如何安装TA-lib库
- windows安装TA-Lib
- TA-lib使用方法
- 安装TA-LIB
- Ta-lib 函数一览
- TA-Lib 安装失败
- Mac 安装TA-Lib
- Windows下安装TA-Lib
- 安装Ta-Lib Python 库
- Ubuntu 16.04 安装 ta-lib
- 如何利用lib进行分类
- 使用TA-Lib在vn.trader上开发CTA交易策略
- 使用TA-Lib在vn.trader上开发CTA交易策略
- 使用TA-Lib在vn.trader上开发CTA交易策略
- 初学者在python下使用Ta-lib库时遇到的一些问题及解决办法
- bzoj1835基站选址(dp+线段树)
- JS中声明一个数组
- GitLab安装说明
- iOS应用之间的跳转,进入指定页面
- ANDROID GRADLE命令详解与导入第三方包
- 如何使用TA-LIB进行技术分析?
- 贪心算法
- 纯CSS3实现超炫酷的萤火虫动画
- kubernetes集群搭建以及遇到的问题
- 突破!中兴新支点Linux桌面操作系统在龙芯CPU上支持QQ使用
- 全栈式PHP集成环境-laragon(二) 配置、使用
- MUI:mui项目中如何使用原生JavaScript代替jquery来操作dom
- 新一线城市“抢人”大战:多地加快推进户籍改革
- mysql直接导出查询数据到excel