kLineChart

来自于:开发者立即使用

createView addFooterData loadComplete loadEnd

概述

kLineChart简介

金融行业中,有非常复杂的数据及专业知识。展示复杂数据最直观的方式就是各种类型的图表。K线图形态可分为反转形态、整理形态及缺口和趋向线等。后K线图因其细腻独到的标画方式而被引入到股市及期货市场。股市及期货市场中的K线图的画法包含四个数据,即开盘价、最高价、最低价、收盘价,所有的k线都是围绕这四个数据展开,反映大势的状况和价格信息。如果把每日的K线图放在一张纸上,就能得到日K线图,同样也可画出周K线图、月K线图

模块涉及到金融行业专业知识,有非常多的专有名词,使用者应当会了解其中涉及的大量专业名词,因此文档不会过多解释。模块基本属性较多,因此文档如有疏忽,请及时联系作者。

模块功能

  • 绘制K线联动图
  • 定制图表的所有可控样式
  • 动态分页载入数据
  • K线选中滑动回调
  • 自动计算常用基本指标
  • 图表缩放
  • 全屏显示

kLineChart 模块概述

本模块封装了Android原生端的高精度K线图表级联动图功能,用户需要一组简单的数据传入即可绘制出金融行业专业的K线图效果。

不能同时使用的模块:暂无

Android 系统平台上需注意事项

使用此模块需要自定义loader或者云编译,android版本最低支持4.0.3

实例widget下载地址

模块接口

createView

在指定位置创建一个自定义的View,用于绘制K线图,默认打开loading状态

createView({params}, callback(ret, err))

params

  1. {
  2. x: 0, //距离左边的距离
  3. y: 0, //距离上边的距离
  4. w: 0, //宽度 如果为0默认为设备宽度
  5. h: 350, //高度 如果为0默认为设备高度
  6. fixedOn: 'xxx', //依附的frame名称
  7. fixed: true, //跟随页面滑动
  8. style: {
  9. chart: {
  10. backgroundColor: '#ffffff', //字符串 背景色(注意所有颜色必须为16进制,不能使用简写)
  11. candleLineWidth: 1, //数值 蜡烛线宽度 默认 1
  12. candleSolid: true, //布尔 蜡烛是否是实心 默认 true
  13. candleWidth: 4, //数值 蜡烛图的宽度 默认 4
  14. },
  15. grid: {
  16. gridLineWidth: 1, //数值 网格线的宽度 默认 1
  17. gridRows: 2, //数值 网格横线的条数 默认 2
  18. gridColumns: 2, //数值 网格竖线的条数 默认 2
  19. gridLineColor: '#ffffff' //字符串 网格线的颜色 默认 #ffffff
  20. },
  21. selector: {
  22. selectorBackgroundColor: '#c830343C', //字符串 选择器的颜色 默认#c830343C
  23. selectorTextSize: 12, //数值 选择器的字体大小 默认 12
  24. selectedLineColor: '#000000', //字符串 十字线的颜色 默认 无
  25. selectedLineWidth: 1 //数值 十字线的宽度 默认 1
  26. },
  27. //注意 tab中 tabTextColor和tabTextSelectedColor字段必须同时存在
  28. tab: {
  29. stabBackgroundColor: '#000000', //字符串 tab的背景色 默认 #000000
  30. tabColor: '#000000', //字符串 下标颜色 默认 #000000
  31. tabTextColor: '#DDDDDD', //字符串 标签文字颜色 默认 #DDDDDD
  32. tabTextSelectedColor: '#646464' //字符串 被选中标签文字颜色 默认 #646464
  33. }
  34. ma: {
  35. ma5Color: '#18CCF6', //字符串 ma5线的颜色 默认 #18CCF6
  36. ma10Color: '#FE5EDF', //字符串 ma10线的颜色 默认 #FE5EDF
  37. ma20Color: '#E7A520' //字符串 ma20线的颜色 默认 #E7A520
  38. },
  39. macd: {
  40. macdWidth: 1, //数值 macd线宽 默认 1
  41. difColor: '#18CCF6', //字符串 DIF指标颜色 默认 #18CCF6
  42. deaColor: '#FE5EDF', //字符串 DEA指标颜色 默认 #FE5EDF
  43. macdColor: '#E7A520', //字符串 MACD指标颜色 默认 #E7A520
  44. },
  45. kdj: {
  46. kColor: '#18CCF6', //字符串 K指标颜色 默认 #18CCF6
  47. dColor: '#FE5EDF', //字符串 D指标颜色 默认 #FE5EDF
  48. jColor: '#E7A520', //字符串 J指标颜色 默认 #E7A520
  49. },
  50. rsi: {
  51. rsi1Color: '#18CCF6', //字符串 RSI1指标颜色 默认 #18CCF6
  52. rsi2Color: '#FE5EDF', //字符串 RSI1指标颜色 默认 #FE5EDF
  53. rsi3Color: '#E7A520', //字符串 RSI1指标颜色 默认 #E7A520
  54. },
  55. boll: {
  56. upColor: '#18CCF6', //字符串 UP指标颜色 默认 #18CCF6
  57. mbColor: '#FE5EDF', //字符串 MB指标颜色 默认 #FE5EDF
  58. dnColor: '#E7A520', //字符串 DN指标颜色 默认 #E7A520
  59. }
  60. }

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. event: 'loadMore', // loadMore 当开启分页加载,滑动到最左边触发
  3. // select 长按K线选中滑动触发
  4. data: Object //JSONObject 类型,当事件为select时,回调选中的K线信息
  5. }

示例代码

  1. var kLineChart = api.require('kLineChart');
  2. kLineChart.createView({
  3. x: 0,
  4. y: 0,
  5. w: 0,
  6. h: 350,
  7. style: {
  8. chart: {
  9. backgroundColor: '#ffffff',
  10. candleLineWidth: 1,
  11. candleSolid: true,
  12. candleWidth: 4,
  13. },
  14. grid: {
  15. gridLineWidth: 1,
  16. gridRows: 2,
  17. gridColumns: 2,
  18. gridLineColor: '#ffffff'
  19. },
  20. selector: {
  21. selectorBackgroundColor: '#c830343C',
  22. selectorTextSize: 12,
  23. selectedLineColor: '#000000',
  24. selectedLineWidth: 1
  25. },
  26. ma: {
  27. ma5Color: '#18CCF6',
  28. ma10Color: '#FE5EDF',
  29. ma20Color: '#E7A520'
  30. },
  31. macd: {
  32. macdWidth: 1,
  33. difColor: '#18CCF6',
  34. deaColor: '#FE5EDF',
  35. macdColor: '#E7A520',
  36. },
  37. kdj: {
  38. kColor: '#18CCF6',
  39. dColor: '#FE5EDF',
  40. jColor: '#E7A520',
  41. },
  42. rsi: {
  43. rsi1Color: '#18CCF6',
  44. rsi2Color: '#FE5EDF',
  45. rsi3Color: '#E7A520',
  46. },
  47. boll: {
  48. upColor: '#18CCF6',
  49. mbColor: '#FE5EDF',
  50. dnColor: '#E7A520'
  51. }
  52. }
  53. }, function (res, err) {
  54. console.log(JSON.stringify(res))
  55. })

可用性

Android系统

可提供的1.0.0及更高版本

addFooterData

添加数据

addFooterData({params})

params

  1. {
  2. data: [{
  3. "open": 59.99, //开盘价
  4. "date": "2018/02/07", //交易日期 注意格式必须为 yyyy/MM/dd
  5. "close": 58.9, // 收盘价
  6. "high": 60.39, //最高价
  7. "low": 57.03, //最低价
  8. "volume": 8208535 //成交量
  9. },
  10. {
  11. "open": 60,
  12. "date": "2018/02/08",
  13. "close": 58.51,
  14. "high": 60.88,
  15. "low": 58.5,
  16. "volume": 10398563
  17. }...]
  18. }

示例代码

  1. api.ajax({
  2. url: 'http://47.98.247.192/data2.json'
  3. }, function (ret, err) {
  4. if (ret) {
  5. kLineChart.addFooterData({
  6. data: ret
  7. })
  8. kLineChart.loadComplete()
  9. } else {
  10. api.alert({
  11. msg: JSON.stringify(err)
  12. });
  13. };
  14. });

可用性

Android系统

可提供的1.0.0及更高版本

loadComplete

确认数据加载完成,取消loading状态。在addFooterData调用后调用此方法。

使用此方法结束一次数据加载,表示K线图可以分页加载,既向左滑动时,可以触发loadMore回调,配合addFooterData方法,可以继续绘制图,直到调用loadEnd方法为止。用户可以配置计数器来做无限动态加载K线功能,这样既可以保证性能,又能保证加载速度。

loadComplete()

示例代码

  1. kLineChart.loadComplete()

补充说明

此方法必须在调用addFooterData加载数据之后调用。默认调用addFooterData后,图表就会绘制。但是loading状态不会取消。只有调用loadloadComplete或者loadEnd方法才会结束loading状态。

可用性

Android系统

可提供的1.0.0及更高版本

loadEnd

确认数据加载完成,取消loading状态。在addFooterData调用后调用此方法。

使用此方法结束数据加载,表示K线图已经完成所有数据加载,此后向左滑动时,不会触发loadMore回调。调用此方法,表示K线图已经完全加载完毕。

loadEnd()

示例代码

  1. kLineChart.loadEnd()

补充说明

loadEnd调用表示图表的绘制完成完全结束,在调用此方法后,不得再调用其他方法,以免造成数据紊乱。

可用性

Android系统

可提供的1.0.0及更高版本