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
{
x: 0, //距离左边的距离
y: 0, //距离上边的距离
w: 0, //宽度 如果为0默认为设备宽度
h: 350, //高度 如果为0默认为设备高度
fixedOn: 'xxx', //依附的frame名称
fixed: true, //跟随页面滑动
style: {
chart: {
backgroundColor: '#ffffff', //字符串 背景色(注意所有颜色必须为16进制,不能使用简写)
candleLineWidth: 1, //数值 蜡烛线宽度 默认 1
candleSolid: true, //布尔 蜡烛是否是实心 默认 true
candleWidth: 4, //数值 蜡烛图的宽度 默认 4
},
grid: {
gridLineWidth: 1, //数值 网格线的宽度 默认 1
gridRows: 2, //数值 网格横线的条数 默认 2
gridColumns: 2, //数值 网格竖线的条数 默认 2
gridLineColor: '#ffffff' //字符串 网格线的颜色 默认 #ffffff
},
selector: {
selectorBackgroundColor: '#c830343C', //字符串 选择器的颜色 默认#c830343C
selectorTextSize: 12, //数值 选择器的字体大小 默认 12
selectedLineColor: '#000000', //字符串 十字线的颜色 默认 无
selectedLineWidth: 1 //数值 十字线的宽度 默认 1
},
//注意 tab中 tabTextColor和tabTextSelectedColor字段必须同时存在
tab: {
stabBackgroundColor: '#000000', //字符串 tab的背景色 默认 #000000
tabColor: '#000000', //字符串 下标颜色 默认 #000000
tabTextColor: '#DDDDDD', //字符串 标签文字颜色 默认 #DDDDDD
tabTextSelectedColor: '#646464' //字符串 被选中标签文字颜色 默认 #646464
}
ma: {
ma5Color: '#18CCF6', //字符串 ma5线的颜色 默认 #18CCF6
ma10Color: '#FE5EDF', //字符串 ma10线的颜色 默认 #FE5EDF
ma20Color: '#E7A520' //字符串 ma20线的颜色 默认 #E7A520
},
macd: {
macdWidth: 1, //数值 macd线宽 默认 1
difColor: '#18CCF6', //字符串 DIF指标颜色 默认 #18CCF6
deaColor: '#FE5EDF', //字符串 DEA指标颜色 默认 #FE5EDF
macdColor: '#E7A520', //字符串 MACD指标颜色 默认 #E7A520
},
kdj: {
kColor: '#18CCF6', //字符串 K指标颜色 默认 #18CCF6
dColor: '#FE5EDF', //字符串 D指标颜色 默认 #FE5EDF
jColor: '#E7A520', //字符串 J指标颜色 默认 #E7A520
},
rsi: {
rsi1Color: '#18CCF6', //字符串 RSI1指标颜色 默认 #18CCF6
rsi2Color: '#FE5EDF', //字符串 RSI1指标颜色 默认 #FE5EDF
rsi3Color: '#E7A520', //字符串 RSI1指标颜色 默认 #E7A520
},
boll: {
upColor: '#18CCF6', //字符串 UP指标颜色 默认 #18CCF6
mbColor: '#FE5EDF', //字符串 MB指标颜色 默认 #FE5EDF
dnColor: '#E7A520', //字符串 DN指标颜色 默认 #E7A520
}
}
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
event: 'loadMore', // loadMore 当开启分页加载,滑动到最左边触发
// select 长按K线选中滑动触发
data: Object //JSONObject 类型,当事件为select时,回调选中的K线信息
}
示例代码
var kLineChart = api.require('kLineChart');
kLineChart.createView({
x: 0,
y: 0,
w: 0,
h: 350,
style: {
chart: {
backgroundColor: '#ffffff',
candleLineWidth: 1,
candleSolid: true,
candleWidth: 4,
},
grid: {
gridLineWidth: 1,
gridRows: 2,
gridColumns: 2,
gridLineColor: '#ffffff'
},
selector: {
selectorBackgroundColor: '#c830343C',
selectorTextSize: 12,
selectedLineColor: '#000000',
selectedLineWidth: 1
},
ma: {
ma5Color: '#18CCF6',
ma10Color: '#FE5EDF',
ma20Color: '#E7A520'
},
macd: {
macdWidth: 1,
difColor: '#18CCF6',
deaColor: '#FE5EDF',
macdColor: '#E7A520',
},
kdj: {
kColor: '#18CCF6',
dColor: '#FE5EDF',
jColor: '#E7A520',
},
rsi: {
rsi1Color: '#18CCF6',
rsi2Color: '#FE5EDF',
rsi3Color: '#E7A520',
},
boll: {
upColor: '#18CCF6',
mbColor: '#FE5EDF',
dnColor: '#E7A520'
}
}
}, function (res, err) {
console.log(JSON.stringify(res))
})
可用性
Android系统
可提供的1.0.0及更高版本
addFooterData
添加数据
addFooterData({params})
params
{
data: [{
"open": 59.99, //开盘价
"date": "2018/02/07", //交易日期 注意格式必须为 yyyy/MM/dd
"close": 58.9, // 收盘价
"high": 60.39, //最高价
"low": 57.03, //最低价
"volume": 8208535 //成交量
},
{
"open": 60,
"date": "2018/02/08",
"close": 58.51,
"high": 60.88,
"low": 58.5,
"volume": 10398563
}...]
}
示例代码
api.ajax({
url: 'http://47.98.247.192/data2.json'
}, function (ret, err) {
if (ret) {
kLineChart.addFooterData({
data: ret
})
kLineChart.loadComplete()
} else {
api.alert({
msg: JSON.stringify(err)
});
};
});
可用性
Android系统
可提供的1.0.0及更高版本
loadComplete
确认数据加载完成,取消loading状态。在addFooterData调用后调用此方法。
使用此方法结束一次数据加载,表示K线图可以分页加载,既向左滑动时,可以触发loadMore回调,配合addFooterData方法,可以继续绘制图,直到调用loadEnd方法为止。用户可以配置计数器来做无限动态加载K线功能,这样既可以保证性能,又能保证加载速度。
loadComplete()
示例代码
kLineChart.loadComplete()
补充说明
此方法必须在调用addFooterData加载数据之后调用。默认调用addFooterData后,图表就会绘制。但是loading状态不会取消。只有调用loadloadComplete或者loadEnd方法才会结束loading状态。
可用性
Android系统
可提供的1.0.0及更高版本
loadEnd
确认数据加载完成,取消loading状态。在addFooterData调用后调用此方法。
使用此方法结束数据加载,表示K线图已经完成所有数据加载,此后向左滑动时,不会触发loadMore回调。调用此方法,表示K线图已经完全加载完毕。
loadEnd()
示例代码
kLineChart.loadEnd()
补充说明
loadEnd调用表示图表的绘制完成完全结束,在调用此方法后,不得再调用其他方法,以免造成数据紊乱。
可用性
Android系统
可提供的1.0.0及更高版本