标签:closePrice begin java lib value talib length line out
1.网上大部分教程基本都是基于python对talib函数的使用 , 因为pandas在python编程是比java更直观,但是也免不了有人用Java实现.
SMA 是 Single Moving Average缩写, 也就是移动平均线 , 当然 , ta-lib也有几百个其它函数, 诸如macd , 基本上都是传入 数组 .很相似 .
import com.tictactec.ta.lib.Core; import com.tictactec.ta.lib.MInteger; import com.tictactec.ta.lib.RetCode; public class SimpleMovingAverageExample { /** * The total number of periods to generate data for. */ public static final int TOTAL_PERIODS = 100; //1 .数组长度100 /** * The number of periods to average together. */ public static final int PERIODS_AVERAGE = 30; //2. MA移动周期窗口,这里30代表30日均线 public static void main(String[] args) { double[] closePrice = new double[TOTAL_PERIODS]; double[] out = new double[TOTAL_PERIODS]; MInteger begin = new MInteger(); MInteger length = new MInteger(); for (int i = 0; i < closePrice.length; i++) { //3. 这里纯粹是造数据, 你也可以把自己的原始数据赋值给 closePrice[],最后计算要用此数组! closePrice[i] = (double) i; } Core c = new Core(); //下面这个是获取Core实例执行sma(移动平均线)函数 , 一共7个参数 , 这里可以不用管, 因为前面已经定义了 RetCode retCode = c.sma(0, closePrice.length - 1, closePrice, PERIODS_AVERAGE, begin, length, out); //说明,begin是治标最开始出现的下标(前几个是无法得出指标的),length是有效指标个数, out是输出结果数组 . 其实就是把out前面不符合的裁掉,再输出结果
if (retCode == RetCode.Success) { System.out.println("Output Start Period: " + begin.value); System.out.println("Output End Period: " + (begin.value + length.value - 1)); for (int i = begin.value; i < begin.value + length.value; i++) { StringBuilder line = new StringBuilder(); line.append("Period #"); line.append(i); line.append(" close="); line.append(closePrice[i]); line.append(" mov_avg="); line.append(out[i - begin.value]); System.out.println(line.toString()); } } else { System.out.println("Error"); } } }
参考 https://github.com/ishanthilina/TA-Lib-Java-Examples
ta-lib的jar包下载地址: https://alpha7.lanzouu.com/iPuxH04etg8h
标签:closePrice,begin,java,lib,value,talib,length,line,out 来源: https://www.cnblogs.com/alpha-cat/p/16240933.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。