跳到主要内容

主图 / 副图

一页里同时看价格、成交量与指标。你只声明 Chart + Layer;高度与轴由 Keisen 布局。

共性结构

KeisenChart
├─ MainKlineChart → KlineCandles, MA, …
├─ VolumeChart → VOL, MAVOL, …
└─ MACDChart → DIF, DEA, MACD
备注

未写 MainKlineChart 时自动挂默认主图(仅蜡烛)。

手写声明式组合:

加载可运行示例…

用指标工具管理显示与配置

手写每棵 Chart / Layer 树在指标一多时会很啰嗦。@keisen-charts/react/toolkit(或 @keisen-charts/vue/toolkit)里的 useKlineIndicator 维护一套设置(显隐、颜色、参数),并据此拼出:

  • mainLayers → 挂进 MainKlineChart(MA / EMA / BOLL…)
  • paneCharts → 挂在主图下方(Volume / MACD / RSI…)
  • panelProps → 喂给设置面板(显隐 / 改参 / 改色)

设置面板 UI 高度客制化,库不内置成品组件。下面示例用工具栏按钮弹出面板(显隐 / 子线颜色 / 均线增减);可复制后改成 Popover / Drawer。

API:useKlineIndicator(options?)

options类型说明
defaultsPartial<Record<id, Partial<IndicatorSetting>>>覆盖内置默认显隐 / 颜色 / 参数
maPeriodsnumber[]?MA 默认周期列表
extrasuseKlineIndicatorExtra[]?自定义指标(如 Bias)参与组装
composeboolean?默认 truefalse 时不生成 mainLayers / paneCharts(只拿 settings)
返回值说明
settings当前各指标设置(Vue 为 Ref
setVisible(id, visible)显隐
setColor(id, key, color)改某条颜色
setParams(id, params)改计算参数
reset()恢复默认
panelProps给设置面板的 props 包
mainLayers主图 overlay Layer 节点
paneCharts副图 Chart 节点

panelProps

字段说明
groups分组元数据(主图 / 副图 + 各指标 label、颜色键、参数字段)
settings与上面同源的设置表
setVisible / setColor / setParams / reset同 hook 返回值

挂载方式:

<KeisenChart>
<MainKlineChart>
<KlineCandles />
{indicator.mainLayers}
</MainKlineChart>
{indicator.paneCharts}
</KeisenChart>

Vue 用 VNodes 展开:

<MainKlineChart>
<KlineCandles />
<VNodes :nodes="mainLayers" />
</MainKlineChart>
<VNodes :nodes="paneCharts" />

示例

默认只开 MA + Volume + MACD。点工具栏「指标设置」弹出面板:勾选显隐、改子线颜色;均线类可用 × / + 增减子线。

加载可运行示例…