介绍
想要不依赖量化平台进行技术分析的话,可以尝试使用ta-lib这个库,称Technical Analysis Library。当然我们自己实现分析指标也是可以的,不过时间和验证都需要我们花费不少精力,没必要去重复造轮子。
源代码地址:http://www.github.com/BYVoid/TA-Lib
- 包括 200多个指标计算,如MACD,RSI,随机,布林带 等等 等指标。 ( 更多信息)
- 烛台 Pattern 识别
- 面向 C/C++。Java。Perl。python 和 100%管理的开源 API ( 这个git仓库是一个只有 Maven 支持的Java镜像镜像)
免费开放源代码库
可以在BSD许可下使用 ta,允许它集成在你自己的开源或者商业应用程序中。 ( 更多信息)
商业应用
ta也可用作安装 Excel Add-Ins的简易工具。 免费试用。 !
如何使用
以macd的计算为例,与macd指标计算相关的函数有如下2个:
// 计算需要往前回溯的数据量,比如30日均线必须要等到有30个交易日的收盘价才能计算第一个均值,如果不考虑内存空间的浪费,直接用测试数据集大小也可以
public int macdLookback( int optInFastPeriod, // 快周期,一般为12
int optInSlowPeriod, // 慢周期,一般为26
int optInSignalPeriod ) // 周期 一般为9
public RetCode macd( int startIdx, // inReal用于计算的开始index
int endIdx, // inReal中用于计算的结束index
double inReal[], // 数据集合
int optInFastPeriod,
int optInSlowPeriod,
int optInSignalPeriod,
MInteger outBegIdx, // 输出结果相对于inReal的开始index的开始index
MInteger outNBElement, // 输出结果数量
double outMACD[], // MACD:EMA(C,12)-EMA(C,26
double outMACDSignal[], // Signal:EMA(MACD,9);
double outMACDHist[] ) // Histogram:MACD-Signal;
使用第一个函数计算需要回溯的数据量,这个结果与第二个函数的 outBegIdx的值是相等的。
macd计算的输出结果在入参中,即outMACD,outMACDSignal,outMACDHist。