目录
一步一步教你写股票走势图——分时图一(概述)
一步一步教你写股票走势图——分时图二(自定义xy轴)
一步一步教你写股票走势图——分时图三(对齐图表、自定义柱状图高亮)
一步一步教你写股票走势图——分时图四(高亮联动)
一步一步教你写股票走势图——分时图五(自定义标记)
一步一步教你写股票走势图——K线图一(概述)
一步一步教你写股票走势图——K线图二(图表联动)
一步一步教你写股票走势图——K线图三(添加均线)
一步一步教你写股票走势图——K线图四(高亮联动一)
一步一步教你写股票走势图——K线图五(高亮联动二)
一步一步教你写股票走势图——商业版


demo更新地址https://github.com/AndroidJiang/StockChart


在开篇之前,给大家出个小算法题,一定要做哦,因为既然你打算看本章节内容了,那么这个小算法必须得会的哟!

有一组数,1、2、3……99、100,一共一百个数,假设是ListA,现在将
ListA索引为0、1、2、3、4的数相加之和赋给ListB索引为4的数
ListA索引为1、2、3、4、5的数相加之和赋给ListB索引为5的数 ……(以此类推)
ListA索引为95、96、97、98、99的数相加之和赋给ListB索引为99的数
让你打印出ListB里面所有的数据,ListB中前4位的值可以用0代替

赶紧动手试一试吧,小算法一个哦,不难的!最好5分钟之内出答案哦!

(片刻之后)。。。

想必大家都动手试过了吧,有人已经做好了,有人还在琢磨呢,那得反思一下啦,算法题很多大公司面试都会出,考验你逻辑能力,不足的人空闲得恶补一下啊,博主表示自己算法也不咋样,简单点的还能应付,稍微复杂点就歇菜咯!

我们简单贴下代码吧

        listA = new ArrayList<>();listB = new ArrayList<>();for (int i = 0; i < 100; i++) {listA.add(i, i);}for (int i = 0; i < 100; i++) {if (i >= 4) {sum = 0;listB.add(i, fund(i - 4, i));} else {listB.add(i, 0);}}for (int i = 0; i < 100; i++) {Log.e("OUT", listB.get(i) + "");}private Integer fund(Integer a, Integer b) {for (int i = a; i <= b; i++) {sum += listA.get(i);}return sum;}

So Easy?是不是!恍然大悟,似不似。那么这个小算法跟今天的内容有什么关系呢,我们今天研究的是k线图添加均线图,均线图的计算就是上面的算法,我们看下图先。

我们看MA5的那根线,一根理解了,其他也就懂了。MA5是5日均线,从当前天往前推5天(包含当天),每天的收盘价之和除以5,得到当天的MA5值,所以相当于

ma5(5)=(1收+2收+3收+4收+5收)/5
ma5(6)=(2收+3收+4收+5收+6收)/5
……

一直到最后,是不是跟上面的算法一模一样。

既然知道均线值怎么算了,那么久简单了,下面就直接把算好的数据,放入到折线图中即可啦!

 for (int i = 0, j = 0; i < mData.getKLineDatas().size(); i++, j++) {xVals.add(mData.getKLineDatas().get(i).date + "");barEntries.add(new BarEntry(mData.getKLineDatas().get(i).vol, i));candleEntries.add(new CandleEntry(i, mData.getKLineDatas().get(i).high, mData.getKLineDatas().get(i).low, mData.getKLineDatas().get(i).open, mData.getKLineDatas().get(i).close));if(i>=4){sum=0;line5Entries.add(new Entry(getSum(i - 4, i)/5,i));}if(i>=9){sum=0;line10Entries.add(new Entry(getSum(i - 9, i)/10,i));}if(i>=29){sum=0;line30Entries.add(new Entry(getSum(i - 29, i)/30,i));}}ArrayList<ILineDataSet> sets = new ArrayList<ILineDataSet>();sets.add(setMaLine(5,xVals, line5Entries));sets.add(setMaLine(10,xVals, line10Entries));sets.add(setMaLine(30, xVals, line30Entries));CombinedData combinedData=new CombinedData(xVals);LineData lineData=new LineData(xVals,sets);combinedData.setData(candleData);combinedData.setData(lineData);combinedchart.setData(combinedData);

setMaLine方法

  @NonNullprivate LineDataSet setMaLine(int ma,ArrayList<String> xVals, ArrayList<Entry> lineEntries) {LineDataSet lineDataSetMa = new LineDataSet(lineEntries, "ma"+ma);lineDataSetMa.setDrawValues(false);if(ma==5) {lineDataSetMa.setColor(Color.GREEN);}else if(ma==10){lineDataSetMa.setColor(Color.GRAY);}else{lineDataSetMa.setColor(Color.YELLOW);}lineDataSetMa.setLineWidth(1f);lineDataSetMa.setDrawCircles(false);lineDataSetMa.setAxisDependency(YAxis.AxisDependency.LEFT);lineDataSetMa.setHighlightEnabled(false);return lineDataSetMa;}

如果看代码比较乱的,直接看demo即可,均线图部分相对来说比较简单,不需要自定义功能模块,只是单纯的使用了MP库的东西,有的公司甚至不需要客户端进行计算均值,服务端直接算好返回了,那就更简单了,省去计算的模块。我们来试试看效果吧!

完美!如有问题,欢迎留言!均线添加告一段落,下面难点在于高亮和加载更多两个模块,这两个模块都还在研究中,说实话,感觉还是有点难度的,只要大家给力的star了,那么楼主也会给力的研究并且开源的!


目录
一步一步教你写股票走势图——分时图一(概述)
一步一步教你写股票走势图——分时图二(自定义xy轴)
一步一步教你写股票走势图——分时图三(对齐图表、自定义柱状图高亮)
一步一步教你写股票走势图——分时图四(高亮联动)
一步一步教你写股票走势图——分时图五(自定义标记)
一步一步教你写股票走势图——K线图一(概述)
一步一步教你写股票走势图——K线图二(图表联动)
一步一步教你写股票走势图——K线图三(添加均线)
一步一步教你写股票走势图——K线图四(高亮联动一)
一步一步教你写股票走势图——K线图五(高亮联动二)
一步一步教你写股票走势图——商业版


demo更新地址https://github.com/AndroidJiang/StockChart


一步一步教你写股票走势图——K线图三(添加均线)相关推荐

  1. 一步一步教你写股票走势图——K线图二(图表联动)

    目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...

  2. 一步一步教你写股票走势图——K线图四(高亮联动一)

    目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...

  3. android 分时图x轴宽度,一步一步教你写股票走势图——分时图二(自定义xy轴)...

    目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...

  4. 一步一步教你写股票走势图——分时图二(自定义xy轴)

    目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...

  5. 一步一步教你写股票走势图——K线图五(高亮联动二)

    目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...

  6. 一步步教你画股票图,K线图,高仿雪球股票

    股票图,K线图,蜡烛图,高仿雪球股票,教你一步步实现股票图 项目地址 _005.gif _006.gif 讲K线图之前,先来一个引言. 前两天听了朱凯大神的知乎live,其中说到一点,作为Androi ...

  7. 股票图,K线图,蜡烛图,高仿雪球股票

    股票图,K线图,蜡烛图,高仿雪球股票,教你一步步实现股票图 项目地址 讲K线图之前,先来一个引言. 作为Android开发者需要立即提升的三项技能: 分别是:UI,网络,线程,而UI又分:布局,绘制, ...

  8. StockChart Android股票图/K线图开发库

    项目地址:GitHub 一.介绍 StockChart 一款适用于Android的高扩展性.高性能股票图/K线图开发库,支持多图组合,除了使用内置子图还支持定制子图满足复杂的业务需求. 特点 内置子图 ...

  9. python股票交易接口实现股票分时图K线图及抓取level2行情的开发程序分析

    大家对股票交易接口并不陌生,那么要想获取股票数据获取,也是可以通过python股票交易接口实现股票分时图K线图及抓取level2行情的开发程序分析如下: import sys from PyQt5 i ...

最新文章

  1. 抖音、快手和直播行业的火爆究竟给了谁机会?
  2. Spring Cloud第十二篇:断路器监控(Hystrix Dashboard)
  3. 结对第2次作业——WordCount进阶需求
  4. C#服务中Process的应用!
  5. C++虚函数与多态性
  6. python pip配置镜像源:douban不能下载aliyun可以下载
  7. 基于随机梯度下降法的手写数字识别、epoch是什么、python实现
  8. C++类成员的访问权限以及类的封装
  9. 帝国CMS核心文件简要描述
  10. cad转dxf格式文件太大_如何玩转CAD看图?1分钟,一款完全免费的高效软件,解决所有看图...
  11. IIS执行ASP程序不能调用数据库出现500错误的解决方法
  12. Adobe Flash地图控件AnyMap
  13. 驱动,包括很多软件,并不是最新的就是最好的
  14. linux区分三种用户角色,Linux用户角色划分
  15. 织梦dede canonical 标签页面设置(最新完美修改)
  16. 六年如逆旅,我亦是行人 ——一个顾问的六年安全从业经历
  17. 【C#】Whisper 离线语音识别(微软晓晓语音合成的音频)(带时间戳、srt字幕)...
  18. java高级过滤器、baseServlet、log4j配置使用poi实现excel导入数据库
  19. 玩转AR,让电商营销锦上添花
  20. DNS对网络连通性的影响

热门文章

  1. java国外著名网站
  2. JVM平台上的响应式流(Reactive Streams)规范
  3. 使用Java解压zip格式压缩包
  4. 关于3DMAX2012提示MaxStartUI.mun无效,并显示启动不了MAX
  5. android x86小白安装教程,电脑上安装Android 10小白教程,大屏Android用起来
  6. Java面向对象程序思想
  7. 浙大计算机科学与技术专业课表,周亚金 - 浙江大学 - 计算机科学与技术
  8. MySQL---数据库从入门走向大神系列(十)-Connection对象池、装饰模式与动态代理模式
  9. 基于微信公众平台的美食分享系统设计与开发
  10. dedecms v5.7 sp1 给栏目添加缩略图功能