博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 股票数据通过日K获取周K的数据 算法 源码
阅读量:6822 次
发布时间:2019-06-26

本文共 2544 字,大约阅读时间需要 8 分钟。

目前的数据是从新浪接口获取的, 

 

返回数据为XML格式:

 

1 
2
3
4
5
6
7 8

 

通过以上接口可以获取到日K的数据并封装到一个List集合中保存.

如下的代码是通过日K的数据集合来换算出周K的数据集合.

 

 

1      2     /** 3      * 通过日K算出周K的数据 4      * @param listDay 5      * @return 6      */ 7     public static List
getWeekLineData1(List
listDay) { 8 List
weekList = new ArrayList
(); 9 try {10 if (listDay != null && listDay.size() > 0) {
//先确认有数据11 int size = listDay.size();12 13 String beginDate = listDay.get(0).getDate();14 String endDate = listDay.get(size-1).getDate();15 16 int weeks = getStockWeeks(beginDate, endDate);// 周数 17 18 19 for (int i = 0; i < weeks; i++) {20 21 22 LxKlineEntity vo = null;23 // 获取最高价 最低价 收盘价和开盘价格24 // 需要考虑的情况是如果这周都是休息,那么就没数据可以增加的. 比如春节和国庆节25 List
liststr = new ArrayList
();26 String[] day = getWeeksByDay(beginDate);//根据给定的时间获得这一股票交易周的天数名称 类型为2014-11-2927 28 29 List
weekOneList =weekOneList = new ArrayList
();30 31 for (int j = 0; j < day.length; j++) { // 循环遍历该周的数据32 33 34 String day1 = day[j];35 36 for (int k = 0; k < size; k++) {37 String date = listDay.get(k).getDate();38 if (date.equals(day1)) {39 // 如果日K的数据中有那天的数据 那么就将那个K线数据给加进来40 weekOneList.add(listDay.get(k));41 }42 }43 // 计算最高价和最低价 收盘 开盘44 if (weekOneList != null && weekOneList.size() > 0) { // 如果这周有数据45 vo = new LxKlineEntity();46 int len = weekOneList.size();47 vo.setOpen(weekOneList.get(0).getOpen());// 该股周的第一天的开盘价格48 vo.setClose(weekOneList.get(len-1).getClose());// 该股周的最后一天的收盘价格49 double hi = 0;// 最高价50 double lo = 9999;// 最低价51 double va = 0;// 成交量52 for (int m = 0; m < weekOneList.size(); m++) {53 double high = weekOneList.get(m).getHigh();54 double low = weekOneList.get(m).getLow();55 double val = weekOneList.get(m).getVolume();56 if (high > hi)57 hi = high;58 if (low < lo)59 lo = low;60 va += val;61 }62 vo.setLow(lo);63 vo.setHigh(hi);64 vo.setVolume(va);65 }66 }67 beginDate = getDay(day[6], 1);68 if (vo != null)69 weekList.add(vo);70 }71 }72 } catch (Exception e) {73 e.printStackTrace();74 }75 return weekList;76 }

 

 

以上代码的运行效率可以再优化. 

 

欢迎大家提议修改.

 

联系QQ:30338970  

EMAIL:c9n9m@163.com

转载于:https://www.cnblogs.com/china-soft/p/4131645.html

你可能感兴趣的文章
报错:对一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性...
查看>>
ExtJs表单验证的方法总结
查看>>
Word Embedding与Word2Vec
查看>>
Android API学习 SoundPool 和 MediaPlayer
查看>>
topcoder srm 661 div1 -3
查看>>
NEWS: Symantec宣布Wise Package Studio将终止
查看>>
iOS 开发笔记-报错处理
查看>>
调用PostgreSQL存储过程,找不到函数名的问题
查看>>
郁闷的一天
查看>>
祖宗十八代的称谓
查看>>
如何配置Hyper-V的虚拟机通过主机网络上网 (NAT)
查看>>
Linux make语法
查看>>
javascript--鼠标拖动
查看>>
[html] 图层div半透明,文字不透明
查看>>
ssh整合问题总结--在添加商品模块实现图片(文件)的上传
查看>>
Service 广播 到Fragment
查看>>
各种HTTP错误消息含义
查看>>
小酌重构系列目录汇总
查看>>
String类常用方法。
查看>>
Codeforces Round #356 (Div. 2) D. Bear and Tower of Cubes dfs
查看>>