实例API
getDom(paneId, position)
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => HTMLElement获取dom容器。
paneId窗口id,缺省则是整个图表容器position支持root,main,yAxis,缺省则是root
getSize(paneId, position)
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => {
width: number
height: number
left: number
top: number
right: number
bottom: number
}获取尺寸。
paneId窗口id,缺省则是整个图表容器position位置,支持root,main,yAxis,缺省则是root
setStyles(styles)
(styles: string | object) => HTMLElement设置样式配置。
styles样式配置,可以是通过registerStyles注册进去的样式名。当是对象时,详情可参阅样式,支持合并。
getStyles()
() => object获取样式配置,返回完整类型参阅样式。
setPriceVolumePrecision(pricePrecision, volumePrecision)
(pricePrecision: number, volumePrecision: number) => void设置价格和数量精度,同时技术指标系列是'price'或者'volume'也会受影响。
pricePrecision价格精度volumePrecision数量精度
setTimezone(timezone)
(timezone: string) => void设置时区。
timezone时区名,如'Asia/Shanghai',如果不设置会自动获取本机时区,时区对应名字列表请参阅时区列表。
getTimezone()
() => string获取图表时区名。
setZoomEnabled(enabled)
(enabled: boolean) => void设置是否缩放。
isZoomEnabled()
() => boolean是否可以缩放。
setScrollEnabled(enabled)
(enabled: boolean) => void设置是否可以拖拽滚动。
isScrollEnabled()
() => boolean是否可以拖拽滚动。
setOffsetRightDistance(distance)
(distance: number) => void设置图表右边可以空出来的间隙。
getOffsetRightDistance() ^9.2.0
() => number获取图表右边可以空出来的间隙。
setMaxOffsetLeftDistance() ^9.7.0
(distance: number) => void设置图表左边最大可空出来的间隙。
setMaxOffsetRightDistance() ^9.7.0
(distance: number) => void设置图表右边最大可空出来的间隙。
setLeftMinVisibleBarCount(barCount)
(barCount: number) => void设置左边最小可见的蜡烛数量。
setRightMinVisibleBarCount(barCount)
(barCount: number) => void设置右边最小可见的蜡烛数量。
setBarSpace(space)
(space: number) => void设置图表单根蜡烛柱的宽度。
getBarSpace()
() => number获取图表单根蜡烛柱的宽度。
getVisibleRange()
() => {
from: number
to: number
realFrom: number
realTo: number
}获取可见区间范围。
applyNewData(dataList, more, callback)
(
dataList:Array<{
timestamp: number
open: number
close: number
high: number
low: number
volume?: number,
turnover?: number
}>,
more?: boolean,
callback?: () => void
) => void添加新数据,此方法会清空图表数据,不需要额外调用clearData方法。
dataList是一个K线数据数组,数据类型详情可参阅数据源more告诉图表还有没有更多历史数据,可缺省,默认为truecallback成功回调 ^9.2.0
注意
参数 callback 自版本9.8.0开始,已废弃,请使用 subscribeAction('onDataReady', () => {}) 代替。
applyMoreData(dataList, more, callback)
(
dataList:Array<{
timestamp: number
open: number
close: number
high: number
low: number
volume?: number
turnover?: number
}>,
more?: boolean,
callback?: () => void
) => void添加历史更多数据。
dataList是一个K线数据数组,数据类型详情可参阅数据源more告诉图表还有没有更多历史数据,可缺省,默认为truecallback成功回调 ^9.2.0
注意
该方法自版本9.8.0开始,已废弃。
updateData(data, callback)
(
data: {
timestamp: number
open: number
close: number
high: number
low: number
volume?: number
turnover?: number
},
callback?: () => void
) => void更新数据,目前只会匹配当前最后一条数据的时间戳,相同则覆盖,不同则追加。
data单条k线数据,数据类型详情可参阅数据源callback成功回调 ^9.2.0
注意
参数 callback 自版本9.8.0开始,已废弃,请使用 subscribeAction('onDataReady', () => {}) 代替。
getDataList()
() => Array<{
timestamp: number
open: number
close: number
high: number
low: number
volume?: number
turnover?: number
}>获取图表目前的数据源,返回数据类型可参阅数据源。
clearData()
() => void清空图表数据,一般情况下不用手动调用,为了避免重复绘制,这里只是清除数据,图表不会重绘。
loadMore(cb)
(cb: (timestamp: number | null) => void) => void设置加载更多回调函数。
cb是一个回调方法,timestamp为第一条数据的时间戳
注意
该方法自版本9.8.0开始,已废弃,请使用 setLoadDataCallback 代替。
setLoadDataCallback(cb) ^9.8.0
(
cb: (params: {
type: 'forward' | 'backward'
data: Nullable<KLineData>
callback: (dataList: KLineData[], more?: boolean) => void
}) => void
) => void设置自动加载数据回调方法
cb回调方法params回调参数type类型,是往前加载还是往后加载data加载边界的数据callback回调方法,用于回传数据给图表
createIndicator(value, isStack, paneOptions, callback)
(
value: string | {
name: string
shortName?: string
precision?: number
calcParams?: any[]
shouldOhlc?: boolean
shouldFormatBigNumber?: boolean
visible?: boolean
zLevel?: number
extendData?: any
series?: 'normal' | 'price' | 'volume'
figures?: Array<{
key: string
title?: string
type?: string
baseValue?: number
attrs?: ({
data: object
coordinate: object
bounding: object
barSpace: object
xAxis: object
yAxis: object
}) => object
styles?: (
data: object,
indicator: object,
defaultStyles: object
) => ({
style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
color?: string
})
}>
minValue?: number
maxValue?: number
styles?: object
calc?: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
regenerateFigures?: (calcParms: any[]) => Array<{
key: string
title?: string
type?: string
baseValue?: number
styles?: (
data: object,
indicator: object,
defaultStyles: object
) => {
style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
color?: string
}
}>,
createTooltipDataSource?: (params: object) => {
name?: string
calcParamsText?: string
values?: Array<{
title: string | {
text: string
color: string
}
value: string | {
text: string
color: string
}
}>
}
draw?: (params: object) => boolean
},
isStack?: boolean,
paneOptions?: {
id?: string
height?: number
minHeight?: number
dragEnabled?: boolean
position?: 'top' | 'bottom'
gap?: {
top?: number
bottom?: number
}
axisOptions?: {
name?: string
scrollZoomEnabled?: boolean
}
} | null,
callback?: () => void
) => string | null创建一个技术指标,返回值是一个标识窗口的字符串,这非常重要,后续对该窗口的一些操作,都需要此标识。
value技术指标名或者技术指标对象,当是对象时,类型和图表方法overrideIndicator的入参一致isStack是否覆盖paneOptions窗口配置信息,可缺省id窗口id,可缺省height窗口高度,可缺省minHeight窗口最小高度,可缺省dragEnabled窗口是否可以拖拽调整高度,可缺省position位置,仅仅在创建新的窗口时有效 ^9.6.0gap边距top上边距,值小余1则是百分比bottom下边距,值小余1则是百分比
axisOptionsname指定的轴的名字,此参数对应图表实例方法 registerYAxis(axis) 中的axis.name,默认为 'default' ^9.8.0scrollZoomEnabled轴上是否可以滚动缩放 ^9.3.0
callback指标创建完成回调方法
特殊的id
'candle_pane',主图的窗口id。
示例:
chart.createIndicator('MA', false, {
id: 'pane_1',
height: 100,
minHeight: 30,
dragEnabled: true,
gap: { top: 0.2, bottom: 0.1 },
axisOptions: { scrollZoomEnabled: true }
}, () => {})overrideIndicator(override, paneId, callback)
(
override: {
name: string
shortName?: string
precision?: number
calcParams?: any[]
shouldOhlc?: boolean
shouldFormatBigNumber?: boolean
visible?: boolean
zLevel?: number
extendData?: any
series?: 'normal' | 'price' | 'volume'
figures?: Array<{
key: string
title?: string
type?: string
baseValue?: number
attrs?: ({
data: object
coordinate: object
bounding: object
barSpace: object
xAxis: object
yAxis: object
}) => object
styles?: (
data: object,
indicator: object,
defaultStyles: object
) => {
style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
color?: string
}
}>
minValue?: number
maxValue?: number
styles?: object
calc?: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
regenerateFigures?: (calcParms: any[]) => Array<{
key: string
title?: string
type?: string
baseValue?: number
styles?: (
data: object,
indicator: object,
defaultStyles: object
) => {
style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
color?: string
}
}>,
createTooltipDataSource?: (params: object) => {
name?: string
calcParamsText?: string
values?: Array<{
title: string | {
text: string
color: string
}
value: string | {
text: string
color: string
}
}>
}
draw?: (params: object) => boolean
},
paneId?: string | null,
callback?: () => void
) => void覆盖技术指标信息。
override需要覆盖的一些参数name指标名,用于创建和操作的唯一标识shortName简短名字,用于显示precision精度calcParams计算参数shouldOhlc是否需要ohlc辅助图形shouldFormatBigNumber是否需要格式化大的数字。如1000转换成1k,1000000转换为1M等visible是否可见zLevel层级 ^9.7.0extendData扩展数据series指标系列,可选项有'normal','price'和'volume'figures图形配置minValue指定最小值maxValue指定最大值styles样式calc计算方法regenerateFigures重新生成图形信息方法createTooltipDataSource创建自定义提示信息方法draw自定义绘制方法
paneId窗口id,缺省则设置所有callback成功回调
特殊的id
'candle_pane',主图的窗口id。
示例:
chart.overrideIndicator({
name: 'BOLL',
showName: 'BOLL'
calcParams: [20, 5.5],
precision: 4,
shouldOhlc: true,
shouldFormatBigNumber: false,
visible: true,
zLevel: 1,
extendData: 2432435,
series: 'price',
figures: [],
minValue: null,
maxValue: null,
calc: () => [],
regenerateFigures: () => [],
draw: () => {},
styles: {
bars:[{
style: 'fill,
borderStyle: 'solid,
borderSize: 1,
borderDashedValue: [2, 2],
upColor: '#26A69A',
downColor: '#EF5350',
noChangeColor: '#888888'
}],
lines: [{
size: 1,
style: 'solid',
dashedValue: [2, 2],
color: '#FF9600'
}],
circles: [{
style: 'fill,
borderStyle: 'solid,
borderSize: 1,
borderDashedValue: [2, 2],
upColor: '#26A69A',
downColor: '#EF5350',
noChangeColor: '#888888'
}]
}
}, 'candle_pane', () => {})getIndicatorByPaneId(paneId, name)
(paneId?: string, name?: string) => object根据窗口id获取技术指标信息。
paneId窗口id,即调用createIndicator方法时返回的窗口标识,可缺省,缺省则返回所有。name技术指标名
特殊的id
'candle_pane',主图的窗口id。
removeIndicator(paneId, name)
(paneId: string, name?: string) => object移除技术指标。
paneId窗口id,即调用createIndicator方法时返回的窗口标识name技术指标名,如果缺省,则会移除所有
特殊的id
'candle_pane',主图的窗口id。
createOverlay(value, paneId)
(
value: string | {
name: string
id?: string
groupId?: string
lock?: boolean
visible?: boolean
zLevel?: number
needDefaultPointFigure?: boolean
needDefaultXAxisFigure?: boolean
needDefaultYAxisFigure?: boolean
mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
modeSensitivity?: number
points?: Array<{
timestamp?: number
dataIndex?: number
value?: number
}>
extendData?: any
styles?: object
onDrawStart?: (event: object) => boolean
onDrawing?: (event: object) => boolean
onDrawEnd?: (event: object) => boolean
onClick?: (event: object) => boolean
onDoubleClick?: (event: object) => boolean
onRightClick?: (event: object) => boolean
onPressedMoveStart?: (event: object) => boolean
onPressedMoving?: (event: object) => boolean
onPressedMoveEnd?: (event: object) => boolean
onMouseEnter?: (event: object) => boolean
onMouseLeave?: (event: object) => boolean
onRemoved?: (event: object) => boolean
onSelected?: (event: object) => boolean
onDeselected?: (event: object) => boolean
} | Array<string | {
name: string
id?: string
groupId?: string
lock?: boolean
visible?: boolean
zLevel?: number
needDefaultPointFigure?: boolean
needDefaultXAxisFigure?: boolean
needDefaultYAxisFigure?: boolean
mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
modeSensitivity?: number
points?: Array<{
timestamp?: number
dataIndex?: number
value?: number
}>
extendData?: any
styles?: object
onDrawStart?: (event: object) => boolean
onDrawing?: (event: object) => boolean
onDrawEnd?: (event: object) => boolean
onClick?: (event: object) => boolean
onDoubleClick?: (event: object) => boolean
onRightClick?: (event: object) => boolean
onPressedMoveStart?: (event: object) => boolean
onPressedMoving?: (event: object) => boolean
onPressedMoveEnd?: (event: object) => boolean
onMouseEnter?: (event: object) => boolean
onMouseLeave?: (event: object) => boolean
onRemoved?: (event: object) => boolean
onSelected?: (event: object) => boolean
onDeselected?: (event: object) => boolean
}>,
paneId?: string
) => string | null创建覆盖物,返回一个字符串类型的标识。
value覆盖物名或者对象,当是对象时,参数和overrideOverlay一致paneId窗口id,可缺省
特殊的id
'candle_pane',主图的窗口id。
示例:
chart.createOverlay({
name: 'segment',
id: 'segment_1',
groupId: 'segment',
points: [
{ timestamp: 1614171282000, value: 18987 },
{ timestamp: 1614171202000, value: 16098 },
],
styles: {
line: {
style: 'solid',
dashedValue: [2, 2],
color: '#f00',
size: 2
}
},
lock: false,
visible: true,
zLevel: 0,
mode: 'weak_magnet',
modeSensitivity: 8,
extendData: 'xxxxxxxx',
needDefaultPointFigure: false,
needDefaultXAxisFigure: false,
needDefaultYAxisFigure: false,
onDrawStart: function (event) { console.log(event) },
onDrawing: function (event) { console.log(event) },
onDrawEnd: function (event) { console.log(event) },
onClick: function (event) { console.log(event) },
onDoubleClick: function (event) { console.log(event) },
onRightClick: function (event) {
console.log(event)
return false
},
onMouseEnter: function (event) { console.log(event) },
onMouseLeave: function (event) { console.log(event) },
onPressedMoveStart: function (event) { console.log(event) },
onPressedMoving: function (event) { console.log(event) },
onPressedMoveEnd: function (event) { console.log(event) },
onRemoved: function (event) { console.log(event) },
onSelected: function (event) { console.log(event) },
onDeselected: function (event) { console.log(event) }
})getOverlayById(id)
(id: string) => object根据id获取覆盖物信息。
id调用createOverlay方法是返回的标识
overrideOverlay(override)
(
override: {
name: string
id?: string
groupId?: string
lock?: boolean
visible?: boolean
zLevel?: number
needDefaultPointFigure?: boolean
needDefaultXAxisFigure?: boolean
needDefaultYAxisFigure?: boolean
mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
modeSensitivity?: number
points?: Array<{
timestamp?: number
dataIndex?: number
value?: number
}>
extendData?: any
styles?: object
onDrawStart?: (event: object) => boolean
onDrawing?: (event: object) => boolean
onDrawEnd?: (event: object) => boolean
onClick?: (event: object) => boolean
onDoubleClick?: (event: object) => boolean
onRightClick?: (event: object) => boolean
onPressedMoveStart?: (event: object) => boolean
onPressedMoving?: (event: object) => boolean
onPressedMoveEnd?: (event: object) => boolean
onMouseEnter?: (event: object) => boolean
onMouseLeave?: (event: object) => boolean
onRemoved?: (event: object) => boolean
onSelected?: (event: object) => boolean
onDeselected?: (event: object) => boolean
}
) => string | null覆盖已绘制的覆盖物。
override需要覆盖的参数name覆盖物名,用于创建的唯一标识id覆盖物标识,如果id存在,则会以id为依据去覆盖groupId编组idlock是否锁定不让拖动visible是否可见zLevel绘制层级,值越大越靠前显示needDefaultPointFigure是否需要默认的点对应的图形needDefaultXAxisFigure是否需要默认的x轴上的图形needDefaultYAxisFigure是否需要默认的y轴上的图形mode模式,可选项有'normal','weak_magnet'和'strong_magnet'modeSensitivity模式灵敏度,仅 mode 是 weak_magnet 时有效 ^9.5.0points点信息extendData扩展数据styles样式onDrawStart开始绘制事件onDrawing绘制中事件onDrawEnd绘制结束事件onClick点击事件onDoubleClick双击事件 ^9.5.0onRightClick右击事件onPressedMoveStart按住开始移动事件onPressedMoving按住移动中事件onPressedMoveEnd按住移动结束事件onMouseEnter鼠标移入事件onMouseLeave鼠标移出事件onRemoved删除事件onSelected选中事件onDeselected取消选中事件
示例:
chart.overrideOverlay({
name: 'segment',
id: 'segment_1',
groupId: 'segment',
points: [
{ timestamp: 1614171282000, value: 18987 },
{ timestamp: 1614171202000, value: 16098 },
],
styles: {
line: {
style: 'solid',
dashedValue: [2, 2],
color: '#f00',
size: 2
}
},
lock: false,
visible: true,
zLevel: 0,
mode: 'weak_magnet',
modeSensitivity: 8,
extendData: 'xxxxxxxx',
needDefaultPointFigure: false,
needDefaultXAxisFigure: false,
needDefaultYAxisFigure: false,
onDrawStart: function (event) { console.log(event) },
onDrawing: function (event) { console.log(event) },
onDrawEnd: function (event) { console.log(event) },
onClick: function (event) { console.log(event) },
onDoubleClick: function (event) { console.log(event) },
onRightClick: function (event) {
console.log(event)
return false
},
onMouseEnter: function (event) { console.log(event) },
onMouseLeave: function (event) { console.log(event) },
onPressedMoveStart: function (event) { console.log(event) },
onPressedMoving: function (event) { console.log(event) },
onPressedMoveEnd: function (event) { console.log(event) },
onRemoved: function (event) { console.log(event) },
onSelected: function (event) { console.log(event) },
onDeselected: function (event) { console.log(event) }
})removeOverlay(remove)
(
remove: string | {
id?: string
groupId?: string
name?: string
}
) => void移除图形。
id调用createOverlay方法是返回的标识groupId编组idname覆盖物名称
删除一个html元素
paneId窗口id,缺省则删除所有htmlId创建时候的id,可以是单个id,也可以是id组成的数组,缺省则删除对应窗口上所有的
scrollByDistance(distance, animationDuration)
(distance: number, animationDuration?: number) => void滚动一定的距离。
distance距离animationDuration动画时间,可以缺省,缺省则无动画
scrollToRealTime(animationDuration)
(distance: number, animationDuration?: number) => void滚动到最初的位置。
animationDuration动画时间,可以缺省,缺省则无动画
scrollToDataIndex(dataIndex, animationDuration)
(dataIndex: number, animationDuration?: number) => void滚动到指定的位置。
dataIndex数据的索引animationDuration动画时间,可以缺省,缺省则无动画
scrollToTimestamp(timestamp, animationDuration)
(timestamp: number, animationDuration?: number) => void滚动到指定时间戳。
timestamp时间戳animationDuration动画时间,可以缺省,缺省则无动画
zoomAtCoordinate(scale, coordinate, animationDuration)
(
scale: number,
coordinate?: {
x: number
y: number
},
animationDuration?: number
) => void在某个坐标点缩放。
scale缩放比例coordinate坐标点,可缺省,缺省则在图表中间位置缩放animationDuration动画时间,可以缺省,缺省则无动画
zoomAtDataIndex(scale, dataIndex, animationDuration)
(scale: number, dataIndex: number, animationDuration?: number) => void在某个位置缩放。
scale缩放比例dataIndex数据的索引animationDuration动画时间,可以缺省,缺省则无动画
zoomAtTimestamp(scale, timestamp, animationDuration)
(scale: number, timestamp: number, animationDuration?: number) => void在指定时间戳上缩放。
scale缩放比例timestamp时间戳animationDuration动画时间,可以缺省,缺省则无动画
setPaneOptions(options)
(
options: {
id: string
height?: number
minHeight?: number
dragEnabled?: boolean
gap?: {
top?: number
bottom?: number
}
axisOptions?: {
name?: string
scrollZoomEnabled?: boolean
}
}
) => void设置窗口配置。
options窗口配置信息,可缺省id窗口idheight窗口高度,可缺省minHeight窗口最小高度,可缺省dragEnabled窗口是否可以拖拽调整高度,可缺省gap边距top上边距,值小余1则是百分比bottom下边距,值小余1则是百分比
axisOptionsname轴名字 ^9.8.0scrollZoomEnabled轴上是否可以滚动缩放 ^9.3.0
特殊的id
'candle_pane',主图的窗口id。
示例:
chart.setPaneOptions({
id: 'pane_1',
height: 100,
minHeight: 3,
dragEnabled: true,
gap: { top: 0.2, bottom: 0.1 },
axisOptions: { name: 'default', scrollZoomEnabled: true }
})executeAction(type, data) ^9.2.0
(
type: 'onCrosshairChange',
data: any => void
) => void执行图表动作
type仅支持 'onCrosshairChange'data执行动作需要的数据
subscribeAction(type, callback)
(
type: 'onDataReady' | 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
callback: (data?: any) => void
) => void订阅图表动作。
type可选项为 'onDataReady','onZoom','onScroll','onVisibleRangeChange','onCandleBarClick', 'onTooltipIconClick','onCrosshairChange'和'onPaneDrag'callback是一个回调方法
unsubscribeAction(type, callback)
(
type: 'onDataReady' | 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
callback?: (data?: any) => void
) => void取消订阅图表动作。
type可选项为 'onDataReady','onZoom','onScroll','onVisibleRangeChange','onCandleBarClick', 'onTooltipIconClick','onCrosshairChange'和'onPaneDrag'callback订阅时的回调方法,缺省则取消当前类型所有
convertToPixel(value, finder)
(
value: {
dataIndex?: number
timestamp?: number
value?: number
} | Array<{
dataIndex?: number
timestamp?: number
value?: number
}>,
finder: {
paneId?: string
absolute?: boolean
}
) => { x: number?, y?: number } | Array<{ x?: number, y?: number }>将值转换成坐标。
value需要转换的值,可以是当个对象,也可以是数组dataIndex数据索引,如果dataIndex和timestamp同时存在,则依据索引转换timestamp时间戳value对应y轴的值
finder过滤条件paneId窗口idabsolute是否是绝对坐标,只作用于y轴
convertFromPixel(coordinate, finder)
(
coordinate: {
x?: number
y?: number
} | Array<{
x?: number
y?: number
},
finder: {
paneId?: string
absolute?: boolean
}
) => {
dataIndex?: number
timestamp?: number
value?: number
} | Array<{
dataIndex?: number
timestamp?: number
value?: number
}>将坐标转换成值。
coordinate需要转换的值,可以是当个对象,也可以是数组finder过滤条件paneId窗口idabsolute是否是绝对坐标,只作用于y轴
getConvertPictureUrl(includeOverlay, type, backgroundColor)
(includeOverlay?: boolean, type?: string, backgroundColor?: string) => string获取图表转换成图片后的图片url。
includeOverlay是否需要包含浮层,可缺省type转换后的图片类型,类型是'png'、'jpeg'、'bmp'三种中的一种,可缺省,默认为'jpeg'backgroundColor背景色,可缺省,默认为'#FFFFFF'
resize()
() => void调整图表大小,总是会填充容器大小。
注意
此方法会重新计算整个图表各个模块的大小,频繁调用可能会影响到性能,调用请谨慎。